提问者:小点点

python和selenium代码一小时前还在工作,但现在停止工作


尊敬的社区成员,

所以我在谷歌搜索右下方找到next按钮,下面是HTML代码:

<td aria-level="3" class="d6cvqb" role="heading"><a href="/search? q=site:linkedin.com/in/+AND+%22Kleiner+Perkins%22+AND+%22profile%22&amp;biw=801&amp;bih=661&amp;sxsrf=AL eKk015vcO0GNGs89AY8isGkfsRmY5fEw:1619014736075&amp;ei=UDSAYLCMBM- zsAfljLiQBQ&amp;start=30&amp;sa=N&amp;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()

一个小时前,所有的东西都在工作,我有点高兴,但现在它不能定位按钮,我感谢您的时间和帮助!

编辑:我打印出了谷歌页面源码,我注意到不知怎么的我被检测到了,有什么办法可以解决?


共1个答案

匿名用户

也许你需要直到按钮可以点击为止。

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

尝试将此定位器与wait一起使用:

//a[@id='pnnext' and contains(@href, '/search')]

或者,

//a[@id='pnnext' and contains(@href, '/search')]/span[1]