【问题标题】:Selenium unable to click on buttonSelenium 无法点击按钮
【发布时间】:2021-09-17 18:03:04
【问题描述】:

我正在尝试使用 selenium 单击“下一页”按钮,但没有成功。我是在使用正确的 CSS 选择器还是应该将其更改为其他内容?

from bs4 import BeautifulSoup
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
import pandas as pd
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.action_chains import ActionChains

options = webdriver.ChromeOptions()
options.add_argument('--headless')
options.add_argument("--enable-javascript")
options.add_argument('--no-sandbox')
options.add_argument("window-size=1200x600")

driver = webdriver.Chrome(ChromeDriverManager().install(), options=options)

driver.get(f'https://www.stakingrewards.com/cryptoassets')
driver.implicitly_wait(10)

button = driver.find_element(By.CSS_SELECTOR,"button[data-testid='next-page-button']")

button.click()

driver.quit()

【问题讨论】:

    标签: python selenium web-scraping


    【解决方案1】:

    改变

    button = driver.find_element(By.CSS_SELECTOR,"button[data-testid='next-page-button']")
    

    button = driver.find_element(By.XPATH, "//button[@data-testid='next-page-button']")
    

    您之前尝试使用 XPATH 进行选择,但将其用作 CSS 选择器。它还需要相对路径/更正。如果还有什么我可以帮助或遗漏的,请告诉我。

    【讨论】:

    • 嗨@ljlozano,感谢您的回复。你的答案似乎不起作用。我收到以下错误' selenium.common.exceptions.WebDriverException:消息:未知错误:无法发现打开的页面
    • 听起来您的 ChromeDriver 或 Chrome 已过时/彼此不同步。这可能是使用 WebDriverManager 和您的 Chrome 版本。请访问here 了解更多信息。通过上面的示例,我能够在我自己的机器上复制您的代码,并且效果很好。
    • 不应该这样,因为我使用的是 webdriver manager (driver = webdriver.Chrome(ChromeDriverManager().install())
    • 如果您在本地安装了 selenium(不使用 WebDriverManager),并通过 PATH 正确设置了您的可执行文件,那么这应该可以工作(就像它在我的最新驱动程序/版本上所做的那样)并做你想做的事:@ 987654324@ d = webdriver.Chrome() d.get(f'https://www.stakingrewards.com/cryptoassets') d.find_element_by_xpath("//button[@data-testid='next-page-button']").click() 如果失败,那么这是您的驱动程序/Chrome 兼容性的问题。对 cme​​ts 中的格式表示歉意,我还在习惯它们。
    猜你喜欢
    • 1970-01-01
    • 2021-06-29
    • 1970-01-01
    • 2015-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-04
    相关资源
    最近更新 更多