Selenium:是否可以将xpath与变量连接起来?

时间:2008-12-31 17:53:51

标签: selenium fitnesse

我的元素的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 |

这样的事情可能吗?它会让我的测试更容易阅读!

2 个答案:

答案 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映射。