如何查找属性xpath =“1”和xpath =“2”的子节点

问题描述 投票:0回答:2

我正在尝试找到一个包含两个子节点的Web元素:

<div _ngcontent-c2="" class=" " title="Twelve (Start date is 31| 0 user)" xpath="1"></div>
<div _ngcontent-c2="" class=" " title="Twelve (Start date is 31| 0 user)" xpath="2"></div>

我尝试了//div[contains(@title,'Twelve (Start date is 31| 0 user)')][1]获得第一个元素,但对我没有用。

selenium selenium-webdriver xpath xpath-2.0 xpath-1.0
2个回答
0
投票

的xpath = “1”

xpath="1"属性是xpath v1.0的参考

的xpath = “2”

xpath="2"属性是xpath v2.0的参考

对于记录,Selenium仅支持XPath v1.0。

包含父标记的一些外部HTML可以帮助我们构建一个更规范的答案。此外,您正在使用的语言绑定信息也缺失。但是,要找到您需要为所需的visibilityOfElementLocated()引入WebDriverWait的第一个元素,并且您可以使用以下可以使用以下xpath:

  • Java的: WebElement element = new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//div[contains(@title,'Start date is 31') and @xpath='1']")));
  • 蟒蛇: element = WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//div[contains(@title,'Start date is 31') and @xpath='1']")))

在这里你可以找到关于What are the differences between versions of XPath (1.0, 2.0, 3.1)的详细讨论


0
投票

您可以尝试使用CSS:

div[xpath='1']

div[xpath='2']
© www.soinside.com 2019 - 2024. All rights reserved.