java - 如何使用Selenium和Java与动态Web元素交互?

标签 java selenium web-applications automated-tests

我想使用 Selenium 与网站上的元素进行交互。该元素根据用户的行为包含更多内容,但显然始终只有一个 HTML 元素。

当鼠标不在元素上方时,该元素看起来像这样:

element without mouse on top

当鼠标放在它上面时,它看起来像这样:

element with mouse on top

当用户单击向下箭头时,其他内容将可视化:

more dynamic content

正如您所看到的,它包含更多逻辑,但我没有为其添加屏幕截图。

对应的HTML代码就是这样,仅此而已: html code of element

我不知道这个内容是如何创建的。有谁知道我如何使用 Selenium 和 java 与该 Web 元素交互? Selenium 显然仅限于 HTML 内容 - 如果不尝试任何肮脏的黑客技术(例如将鼠标放置在元素上的某个位置来触发不同的可视化),我能做什么?

更新 我想做自动化的端到端测试。这意味着我需要像用户一样以编程方式使用 Web 元素的按钮:

  1. 点击 x 按钮删除日期
  2. 通过点击向上和向下按钮更改日期
  3. 使用日历组件更改日期
  4. 更改网络元素中的文本(我想以我目前对 Selenium 的了解可能已经能够做到这一点)

最佳答案

我与该应用程序的开发人员交谈,他告诉我他实际上只是向应用程序添加了一个日期类型的 HTML 输入元素。其余的(即我在上面的问题中介绍的该输入字段的渲染器/编辑器)完全是特定于浏览器的。在 Chrome 中看起来很像,在 Firefox 中则完全不同。

上述 Web 元素似乎是 Chrome 中常规的 HTML 5 日期时间选择。有了这些知识,您可以在这里找到 Web 元素和 Selenium 教程:https://www.guru99.com/handling-date-time-picker-using-selenium.html以及与我的问题类似的另一个讨论:How to set HTML5 type="date" input fields (e.g. in Chrome) using Selenium/Protractor?

guru-page 显然描述了如何控制整个 Web 元素,并且它似乎有效。我会检查一下并接受它作为现在的答案。感谢大家抽出时间!

关于java - 如何使用Selenium和Java与动态Web元素交互?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58659700/

相关文章:

java - 字体突然改变 - Eclipse

java - 测试 Selenium ,测试问题

java - 大型 java 项目所有模块的数据库连接设置

java - 在循环内发出值 (RxJava)

java - 如何在java中保存ArrayList的元素?

php - Selenium Webdriver和PHPUnit的屏幕截图

web-applications - 使用Grails读取PDF文件

ruby-on-rails - HTTP 请求从 Web 服务器分派(dispatch)到 CGI/FastCGI 进程

java - 是什么原因导致打字失败?

java - 如何从 Selenium 和 JUnit 检索 li 中 AngularJS 生成的内容?