我正在尝试使用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查找元素。
谢谢。
答案 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:
后面有东西跑不掉,所以我再也无法关闭了,这样做我就退出了。