java - 如何让 Selenium 查找具有不同 ID 的元素?

标签 java selenium

我想制作一个简单的脚本,它将在以下网址创建一个电子邮件帐户:https://service.mail.com/registration.html

每次重新加载页面时,输入文本字段都有不同的 ID。如何可靠地定位这些元素?另外,为什么有人想一直更改 ID?

示例:

<input class="Text ColouredFocus" type="text" value="" name="z1085243925" id="id11b" maxlength="30" onchange="var wcall=wicketAjaxPost('?wicket:interface=:4:FormRegistration:ListRegistrationData:0:ItemRegistrationData:BorderBoxRegistrationData:PanelRegistrationData:Row1:Field::IBehaviorListener:1:', wicketSerialize(Wicket.$('id11b')),function() { }.bind(this),function() { }.bind(this), function() {return Wicket.$('id11b') != null;}.bind(this));" tabindex="1">

谢谢!

最佳答案

您不必总是使用 idname 属性。有大量的技术和定位策略。有时选择一个并不像看起来那么微不足道。

例如,在这种情况下,从我的角度来看,定位输入字段的一种可读且可靠的方法是依赖于 li 父级的类名。姓氏示例:

driver.findElement(By.cssSelector(".userdata-lastname input"));

关于java - 如何让 Selenium 查找具有不同 ID 的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36757426/

相关文章:

python - 无法在服务器上使用 Chrome 驱动程序运行 selenium 应用程序

java - Thorntail/Wildfly Swarm 中的 CDI 注入(inject)在 Controller 外部不起作用

java - 将 ArrayList 复制到二维数组的优雅方法

ruby-on-rails - Fixtures 和 Selenium and Rails(天哪?)

selenium - 无法使用 Nightwatch 启动 Safari 浏览器

ruby - Selenium Ruby - 按类属性切换框架

javascript - 通过绑定(bind)获取Protractor中的UI-Grid列数据

java - 为什么子列表不适用于 List<Object>?

java - CSS 未在已部署的应用程序中为 chrome 加载

java - 为什么 eclipse 不允许我输入 Scanner 内容?