如何让Selenium找到具有不同ID的元素?

时间:2016-04-21 00:15:36

标签: 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">

谢谢!

1 个答案:

答案 0 :(得分:1)

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

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

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