如何处理动态id

时间:2017-02-16 13:21:21

标签: selenium xpath

我正在尝试使用此网站https://www.componence.com/login探索登录按钮xpath,只需录制并播放。然后我尝试通过firepath和chrome浏览器默认xpath复制器。

但是看起来每次提交按钮xpath都会随着页面加载而改变。我按照xpath跟随"登录"按钮。

.//*[@id='yui_patched_v3_11_0_1_1487250469606_202']
.//*[@id='yui_patched_v3_11_0_1_1487251369606_202']
.//*[@id='yui_patched_v3_11_0_1_1487250229606_202']
.//*[@id='yui_patched_v3_11_0_1_1487254369606_202']

你能帮我检查一下正确的登录按钮的xpath吗?我可以用selenium IDE吗?

2 个答案:

答案 0 :(得分:2)

您可以在XPath下方使用动态id

//button[starts-with(@id, "yui_patched_v3_11_0_1_")]

但更好的解决方案是使用元素的文本内容:

//button[normalize-space(text())="Sign In"]

答案 1 :(得分:2)

我将不同意@Andersson的第二个陈述,因为它适用于var options = new TransactionOptions { IsolationLevel = IsolationLevel.ReadUncommitted }; using (var tranScope = new TransactionScope(TransactionScopeOption.Required, options)) { 但不适用于.com

我认为该网站有第二种语言,我的意见是避免在多语言环境中使用基于文本的选择器。

另外,正如我看到.nl似乎没有有意义的值,在这种情况下尝试识别唯一的父节并从那里开始。

css / xpath的一个选项是:

css:id

xpath:form.sign-in-form button