为了账号安全,请及时绑定邮箱和手机立即绑定

未单击 Python Selenium 按钮

未单击 Python Selenium 按钮

吃鸡游戏 2021-12-02 16:36:50
我正在尝试使用 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 回答

?
四季花海

TA贡献1811条经验 获得超5个赞

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


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


if invisible:

有东西在后面跑,不会关闭,所以我永远无法关闭它,通过这样做我能够退出。


查看完整回答
反对 回复 2021-12-02
?
撒科打诨

TA贡献1934条经验 获得超2个赞

second_click 的 xpath 不准确,因为它不会将点击发送到正确的元素。试试这个,


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


查看完整回答
反对 回复 2021-12-02
  • 2 回答
  • 0 关注
  • 143 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信