我的元素的xpath变得非常难以阅读。
// DIV [@ ID = 'main_content'] / DIV [2] / DIV [2] / DIV [2] / DIV [4] /表/ tbody的/ TR [2] / TD /形式/字段集/ p [1] /输入
如果我能将大部分内容存储为变量并稍后使用它会很好:
| assertElementPresent | $ {myForm}。 / fieldset / p [1] / input |
这样的事情可能吗?它会让我的测试更容易阅读!
答案 0 :(得分:5)
你真的应该将你的selenium espressions锚定在ID的元素中。在2个月内,没有人会对xpath指向的内容有所了解,特别是如果在您需要查找时测试被破坏。我们经常将id添加到元素中以使测试更容易。我们已经学会接受我们以特殊的方式编写java代码以使其可测试,我认为它也适用于HTML。
答案 1 :(得分:1)
你可以写:
store | //div[@id='main_content']/div[2]/div[2]/div[2]/div[4]/table/tbody/tr[2]/td/form | myForm
assertElementPresent | xpath=${myForm}/fieldset/p[1]/input
然而,正如Krosenvold所说,长xpath可能非常脆弱。如果您担心代码中的可读性,并希望将所有定位器放在一个可以进行级联更改的文件中,则可能需要考虑使用UI-Element映射。