未单击Python Selenium按钮

时间:2019-10-24 15:11:30

标签: javascript python html python-3.x selenium

我正在尝试使用python(硒和精美的汤)从此网站(https://www.ilcollege2career.com/#/)抓取数据。

我的代码是这样:

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 :(得分:0)

second_click的xpath不正确,因为它不会将click发送给正确的元素。试试吧

null

选项#1 -

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()

选项#2-

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

答案 1 :(得分:0)

我为正在寻找它的人找到了解决方案。

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

if invisible:

后面有东西跑不掉,所以我再也无法关闭了,这样做我就退出了。