我有一组希望使用Selenium和Chrome执行的Cucumber测试。我的大部分测试工作正常。我目前正在尝试对一个特定步骤进行参数化,以便使用“测试”的任何人都可以简单地命名所需的元素,然后测试即可找到它们。
黄瓜测试看起来像这样:
When I go to the "Inventory" / "Inventory" application
And I search the "Description" field for "a"
我能够很容易地将when语句参数化,但是And语句给我带来了更多麻烦。该页面本身具有几组具有一致id方案的表。带有单词“ Description”的标头的xpath看起来像这样:
//label[@id='m6a7dfd2f_ttrow_[C:2]_ttitle-lb']
并且输入字段具有此xpath
//td[@id='m6a7dfd2f_tfrow_[C:2]-c']/input
作为参考,位于标签室下方的下一个直接输入字段具有此xpath
//td[@id='m6a7dfd2f_tfrow_[C:3]-c']/input
因此,每个标签和输入字段都具有相同的id方案,并且只有“ c:”之后的数字似乎有所变化。该数字对于标签及其相应的输入值均相同。我想要一些如何在页面上扫描单词“ Description”并提取与之关联的元素的ID,然后将其截断为数字的方法。我已经设置了变量来容纳其余的变量,希望它如下:
@When("^I search the \"([^\"]*)\" field for \"([^\"]*)\"$")
public void i_search_the_field_for(String searchField, String searchItem) throws Throwable {
String baseinputXPath = "//td[@id='m6a7dfd2f_tfrow_[c:";
String endinputXPath = "]-c']/input";
String elementNumber = "The return of some sort of method based on searchField";//TODO
driver.findElement(By.xpath(baseinputXPath + elementNumber + endinputXPath)).clear();
driver.findElement(By.xpath(baseinputXPath + elementNumber + endinputXPath)).sendKeys(searchItem);
driver.findElement(By.id("search_button_img")).click();
如果有一种仅根据描述文本提取该数字的方法,那将非常有帮助。
使用xpath在标签标签中搜索带有单词'Description'的WebElement。
"//label[text(),'Description']" or "//label[.='Description']" or "//label[contains(text(),'Description')]"
使用getAttribute("id")
获取ID。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句