使用Selenium在网页上查找元素

时间:2017-03-29 06:30:27

标签: c# selenium xpath selenium-webdriver

我有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代码:

HTML Code

2 个答案:

答案 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#中执行相同操作。