我正在尝试使用Selenium为OBIEE应用程序自动化我的测试用例。现在,我需要从生成的表格报告中读取一个值。问题是,总数最后一个单元格的ID不断变化。 例如 - 目前id为:db_saw_9270_6_1610_0。 刷新后,ID将成为其他内容。中间的4个数字(9270)发生变化。剩下的一点是一样的。我正在使用以下逻辑来捕获此元素:
driver.findElement(By.xpath(".//*[contains(@id, '_6_1610_0')]")).getText();
但是,它返回org.openqa.selenium.NoSuchElementException:无法找到元素:
请告诉我哪里出错了,我该怎么办?
答案 0 :(得分:0)
您可以尝试starts-with
和substring
(代替xpath 2.0 methdod ends-with
):
string xpath = "//*[starts-with(@id, 'db_saw_') and substring(@id, string-length(@id) - 8) = '_6_1610_0']"
driver.findElement(By.xpath(xpath)).getText();
答案 1 :(得分:0)
您可以在xpath下面尝试: -
driver.findElement(By.xpath("//*[starts-with(@id, 'db_saw')]")).getText();
答案 2 :(得分:0)
driver.findElement(By.CSSselector("a[id*='_6_1610_0']")).getText();
注意:a
代表一个html元素。如果您的ID位于元素中,则必须按表替换a
。