我有XPath
/html/body/div[@id='page']/div[@id='page-inner']/div[@id='main-box']/div[@class='in1']/div[@id='content-and-context']/div[@id='content']/div[@class='under-bar']/table[@class='flights']/tbody/tr[@id='flight-932539']/td[2]:
但是flight- 号码是变化。我可以找到部件XPath
的元素吗?
我使用foreach()
并为每个航班写入数据。
这是html代码:
答案 0 :(得分:2)
首先要做的是:不要使用绝对路径。即使是html中最小的更改也会使路径无效,尤其是在动态应用程序中。您的xpath
很容易//tr[@id='flight-932539']/td[2]
至于您的问题,您可以将contains()
用于部分ID
//tr[contains(@id, 'flight-')]/td[2]
答案 1 :(得分:0)
当Guy提到上面的xpath时,为此您可以轻松地使用findElements查找所有航班详细信息,然后根据for循环执行操作。
List<WebElement> WebElements = driver.findElements(By.xpath("//tr[contains(@id, 'flight-')]/td[2]");
for(WebElement element : WebElements){
//perform any operation like for click you can use
element.getText();
}
以上示例在JAVA中,您也可以在C#中执行相同操作。