Selenium Не удается найти элемент при использовании find_element через Python - PullRequest
1 голос
/ 22 апреля 2019

Продолжайте получать unable to locate element сообщение об ошибке.

Первый элемент поиска от xpath был в порядке, но второй доставляет мне трудности.

Вот мой код:

import XLUtils
from selenium import webdriver

driver=webdriver.Chrome(executable_path="C:\Chrome_Driver\Chromedriver.exe")
driver.get("https://www.canada.ca/en/revenue-agency/services/e-services/e-services-businesses/payroll-deductions-online-calculator.html")

driver.find_element_by_xpath('/html/body/main/div[1]/div[7]/p/a[1]').click()
driver.find_element_by_xpath('//*[@id="welcome_button_next"]').click()

Ответы [ 2 ]

1 голос
/ 22 апреля 2019

Вам нужно немного подождать, пока появится кнопка Next.

from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait

wait = WebDriverWait(driver, 10)

e = wait.until(
    EC.presence_of_element_located((By.XPATH, '//*[@id="welcome_button_next"]'))
    )
e.click()
0 голосов
/ 22 апреля 2019

Чтобы щелкнуть по элементу с текстом Далее , вам нужно настроить WebDriverWait , чтобы элемент был кликабельным , и вы можете использовать любое из следующих решений.:

  • Использование CSS_SELECTOR:

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "input.btn.btn-primary#welcome_button_next"))).click()
    
  • Использование XPATH:

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//input[@class='btn btn-primary' and @id="welcome_button_next"]"))).click()
    
  • Примечание : необходимо добавить следующие операции импорта:

    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC
    
...