我试图在 http://www.overstock.com 的登录页面上获取 xpath 为 xpath=".//*[@id='msgIdmmrka']"的标签的值| .但是当我没有输入电子邮件、有效密码并单击“登录”按钮时,几秒钟后这个 Web 元素就会从 DOM 中删除。
我是 Selenium Webdriver 的新手,所以想不出如何处理这种情况的解决方案?你能帮我解决这个问题吗?
我在尝试查找此 Web 元素时收到以下异常错误消息
Unable to locate element: {"method":"xpath","selector":".//*[@id='msgIdmmrka']"}
Command duration or timeout: 30.19 seconds
For documentation on this error, please visit: http://seleniumhq.org/exceptions/no_such_element.html
Build info: version: '2.53.1', revision: 'a36b8b1cd5757287168e54b817830adce9b0158d', time: '2016-06-30 19:26:09'
System info: host: 'Srinivasans-MacBook-Pro.local', ip: '192.168.0.101', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.10.5', java.version: '1.8.0_101'
Driver info: org.openqa.selenium.firefox.FirefoxDriver
Capabilities [{applicationCacheEnabled=true, rotatable=false, handlesAlerts=true, databaseEnabled=true, version=43.0.3, platform=MAC, nativeEvents=false, acceptSslCerts=true, webStorageEnabled=true, locationContextEnabled=true, browserName=firefox, takesScreenshot=true, javascriptEnabled=true, cssSelectorsEnabled=true}]
Session ID: 724463ca-6ab8-f246-acb4-6c8d955e066c
*** Element info: {Using=xpath, value=.//*[@id='msgIdmmrka']}
最佳答案
提交表单后等待消息元素可见:
WebDriverWait wait = new WebDriverWait(driver, timeOut);
WebElement element = wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector(".page-errors .message")));
.page-errors.message
CSS 选择器将匹配错误消息。
关于javascript - 如何使用 Selenium Webdriver 处理从 DOM 中删除的 Web 元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38618758/