" />

Как найти дочерние узлы, имеющие атрибут x-path = 1 и x-path = 2?

selenium selenium-webdriver xpath xpath-2.0 xpath-1.0

46 просмотра

3 ответа

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

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

Автор: Adham Источник Размещён: 17.05.2019 02:35

Ответы (3)


0 плюса

Используйте следующий xpath:

  • Для первого ребенка //div[@xpath="1"]
  • Для второго ребенка //div[@xpath="2"]
Автор: Pritam Maske Размещён: 01.04.2019 04:58

0 плюса

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

div[xpath='1']

div[xpath='2']
Автор: Mate Mrše Размещён: 02.04.2019 07:16

0 плюса

XPath = "1"

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

XPath = "2"

xpath="2"атрибут является ссылкой на xpath v2.0

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

Немного больше 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)

Автор: DebanjanB Размещён: 02.04.2019 01:37
Вопросы из категории :
32x32