上下文 所以我必须为我的工作进行自动化测试。我遇到了这个问题: - 我有一个包含'分包商的桌子' - 如果我创建了一个'分包商'它将进入列表(表) - 但总是在一个随机的地方(第1行,第2行,第8行) - 此外,ID每次都会发生变化。 - 所有行在最后一个(第7列)中有4个按钮。 - 使用与tablerow相同的名称和相同的ID。
Quesiton
我必须点击第4行上的按钮。
我该怎么做?
如果我使用Xpath
,只需点击第一行的按钮即可。
感谢
EDIT! //得到桌子 WebElement baseTable = driver.findElement(By.id(" gridSubContractors"));
String first_part = "//*[@id='gridSubContractors']/tbody/tr[";
String second_part = "]/td[3]";
String final_xpath;
int numOfRow = baseTable.findElements(By.tagName("tr")).size();
boolean found = false;
WebElement cellIneed = null;
for (int i=1; i<=numOfRow && found==false; i++){
final_xpath = first_part+i+second_part;
String test_name = baseTable.findElement(By.xpath(final_xpath)).getText();
System.out.println(test_name);
if (test_name.equals(subcon)){
WebElement tableRow = baseTable.findElement(By.xpath(final_xpath));
cellIneed = tableRow.findElement(By.xpath("//td[7]"));
found=true;
}
}
if (cellIneed != null){
cellIneed.findElement(By.xpath("//a [@data-original-title='Subcontractor name']")).click();
}
这是我的代码,不能在这里得到代码。但是这段代码的作用是点击表格中的第一个按钮,其名称为&#39;转包商名称&#39;而不是在&#34中找到的行中的那个; if(test_name.equals(subcon)&#34; .subcon =需要在表中找到的转包商的名称。它是由此创建的:&#34; subcon = name.getTextContent();&#34;代码中较早。 希望这是您需要的信息
答案 0 :(得分:0)
自升级到新版本以来,我遇到了类似的问题。
我发现的问题是search / div [] / [] ...... 不像我以前习惯的那样工作。
我通过运行结果元素并检查应该单击哪个来避免它。
也许我错了,但对我而言,接缝是硒中的一个错误。