javascript - 如何使用 Selenium Webdriver 处理从 DOM 中删除的 Web 元素?

标签 javascript java selenium xpath

我试图在 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/

相关文章:

java - 在针对 Gingerbread 的应用程序中使用 ICS 函数

javascript - 由于整个模板重新渲染而导致输入焦点丢失

javascript - AngularJS Form 和 $scope 不互相更新

java - 具有共享依赖项的多模块项目的 Gradle 配置

java - xpath可以用来搜索网站的链接吗?

java - 有集成测试 java web 应用程序的经验,cucumber 可行吗?

java - 在 JavascriptExecutor 中修改 Java 变量

javascript - Kendo UI 图表 - 点击事件

javascript - angular.copy() 和 Object.assign() 有什么区别?

java - 在 GWT 中, "[...].java' is removed due to invalid reference(s)”是什么意思?