Кнопка Python Selenium не нажимается - PullRequest
1 голос
/ 24 октября 2019

Я пытаюсь очистить данные с этого сайта (https://www.ilcollege2career.com/#/), используя python (селен и красивый суп).

Код, который у меня есть, таков:

driver = webdriver.Chrome('my file path')

driver.get('https://www.ilcollege2career.com/#/')

first_click = WebDriverWait(driver,5).until(EC.element_to_be_clickable((By.XPATH, '//*[@id="tutorial-modal"]/div/div/div/div[3]/button[1]')))
first_click.click()

second_click = WebDriverWait(driver,5).until(EC.element_to_be_clickable((By.XPATH, '//*[@id="tutorial-start-modal"]/div/div/div[2]/div[2]')))
second_click.click()

Так что моя проблема в том, что хотя первый щелчок работает и он переходит к шагу учебника, второй щелчок, который закрывает учебник, не щелкает. По какой-то причине time.sleep () работает, но я не хочу повторятьчто каждый шаг. Я делаю что-то не так?

Я также пытался найти элемент по css.

Спасибо.

Ответы [ 2 ]

0 голосов
/ 24 октября 2019

Я нашел решение для тех, кто его ищет.

invisible = WebDriverWait(driver, 10).until(EC.invisibility_of_element_located((By.ID, 'tutorial-modal')))

if invisible:

Было что-то, что не могло закрыться, поэтому я так и не смог закрыть это, и, сделав это, я смог выйти.

0 голосов
/ 24 октября 2019

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

driver.fullscreen_window()

driver.get('https://www.ilcollege2career.com/#/')

first_click = WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH, '//*[@id="tutorial-modal"]/div/div/div/div[3]/button[1]')))
first_click.click()

Опция № 1 -

second_click = WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH, "//button[@onclick='closeTutorial()']")))
second_click.click()

Опция № 2 -

second_click = WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH, "//div[@onclick='closeTutorial()']")))
second_click.click()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...