Как найти дочерние узлы с атрибутом xpath = "1" и xpath = "2" - PullRequest
0 голосов
/ 01 апреля 2019

Я пытаюсь найти веб-элемент, который имеет два дочерних узла, как:

<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] получить первый элемент, но у меня не получилось.

Ответы [ 2 ]

0 голосов
/ 02 апреля 2019

xpath = "1"

xpath="1" Атрибут является ссылкой xpath v1.0

xpath = "2"

*Атрибут 1010 * является ссылкой xpath v2.0

Для записи Selenium поддерживает XPath v1.0 * только 1018 *.

Немного больше externalHTML, включая родительский тег , помогло бы нам создать более канонический ответ.Более того, информация об используемой языковой привязке также отсутствует.Однако, чтобы найти первый элемент, вам нужно вызвать WebDriverWait для требуемого visibilityOfElementLocated () , и вы можете использовать следующее, можно использовать следующий xpath:

  • Java :

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

    element = WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//div[contains(@title,'Start date is 31') and @xpath='1']")))
    

Здесь вы можете найти подробное обсуждение В чем различия между версиями XPath (1.0, 2.0, 3.1)

0 голосов
/ 02 апреля 2019

Вы можете попробовать с CSS :

div[xpath='1']

div[xpath='2']
...