python - python 和 selenium 代码在一小时前工作,但现在停止工作
问题描述
尊敬的社区成员,
所以我在右下角的谷歌搜索中找到了下一个按钮,这是 HTML 代码:
<td aria-level="3" class="d6cvqb" role="heading"><a href="/search? q=site:linkedin.com/in/+AND+%22Kleiner+Perkins%22+AND+%22profile%22&biw=801&bih=661&sxsrf=AL eKk015vcO0GNGs89AY8isGkfsRmY5fEw:1619014736075&ei=UDSAYLCMBM- zsAfljLiQBQ&start=30&sa=N&ved=2ahUKEwiw9Orxw4_wAhXPGewKHWUGDlI4FBDw0wN6BAgBEEk"
id="pnnext" style="text-align:left">
<span class="SJajHc NVbCr" style="background:url(/images/nav_logo299.webp) no-repeat;background-
position:-96px 0;width:71px"></span><span style="display:block;margin-left:53px">Next</span></a></td>
我在 python 中使用了以下代码来定位按钮并单击它:
next_button = driver.find_element_by_xpath("//a[@id='pnnext']")
next_button.click()
一小时前一切正常,我有点高兴,但现在找不到按钮,感谢您的时间和帮助!
编辑:我打印了google page_source,我注意到我以某种方式被检测到,有没有办法解决?
解决方案
可能你需要直到按钮可以点击。
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
wait = WebDriverWait(driver, timeout=30)
wait.until(EC.element_to_be_clickable((By.XPATH, "//a[@id='pnnext']")))
elem = driver.find_element_by_xpath("//a[@id='pnnext']")
elem.click()
选项 2
尝试使用此定位器等待:
//a[@id='pnnext' and contains(@href, '/search')]
或者,
//a[@id='pnnext' and contains(@href, '/search')]/span[1]
推荐阅读
- javascript - 鼠标抬起后如何停止“mousemove”事件?
- java - 在 spring.io 项目中将字符串附加到 collectors.joining 函数
- php - 是否可以从视图发送 cakephp 电子邮件
- .htaccess - Htaccess 重写代码给出页面未找到错误
- codenameone - 从 Lightweight Picker 中移除向上向下箭头
- python - 如何在循环内部根据键合并字典
- tableau-api - 如何将多个交叉表从 Tableau Server 导出到 Excel
- groovy - 从属性映射中删除字段
- angular - 数字以小数点存储,但始终以小数逗号显示,无论区域设置如何
- java - 序列化仅在 JavaFX App 类的静态 main 方法中调用时有效