Python / Selenium - Как получить правильный xpath для HTML - PullRequest
0 голосов
/ 09 мая 2018

Через пару дней я пытаюсь выяснить, какой правильный XPATH для кнопки на сайте.

введите описание изображения здесь

Это HTML-код кнопки:

<div class="rc_library_element_name rc_actionable ia-inline-block" href="reporteditor.phtml?.op=3277&amp;.cr=._%21Mqxtjfi_SFjudmo_SWfssuv&amp;.sess=8Otpr5-9Bz_wpGJTXqAEAPTCP7GkYg..&amp;.done=WvKqgMCoA3IAAEf5xL0AAAAK8">Invoice Detail Report</div>

Я пробовал несколько методов, таких как:

invoice_detail_report = wait.until(EC.element_to_be_clickable((By.XPATH, '/html/body/div[2]/div[2]/div[2]/div[2]/div/div[2]/div[5]/div[2]/div[17]/table/tbody/tr/td[2]/div[1]')))

или

invoice_detail_report = wait.until(EC.element_to_be_clickable((By.XPATH, '//DIV[@class="rc_library_element_name rc_actionable ia-inline-block"][text()="Invoice Detail Report"]')))

К сожалению, ничего из этого не сработало.

Не могли бы вы сообщить, какой правильный xpath для этой кнопки?

Большое спасибо за помощь,

Привет.

Ответы [ 2 ]

0 голосов
/ 09 мая 2018

Чтобы найти элемент с текстом Подробный отчет по счету и вызвать для него click(), можно использовать одну из следующих стратегий:

  • Использование XPATH с текстом :

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//div[contains(.,'Invoice Detail Report')]"))).click()
    
  • Использование XPATH с атрибутами :

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//div[@class='c_library_element_name rc_actionable ia-inline-block' and contains(@href,'reporteditor.phtml')]"))).click()
    
  • XPATH с использованием всех атрибутов :

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//div[@class='c_library_element_name rc_actionable ia-inline-block' and contains(@href,'reporteditor.phtml') and contains(.,'Invoice Detail Report')]"))).click()
    
0 голосов
/ 09 мая 2018

Вы можете использовать этот Xpath:

//div[contains(text(),'Invoice Detail Report')]

или

//div[contains(@href,'reporteditor.phtml')]

или

this cssSelector:

div[href^='reporteditor.phtml']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...