点击带有硒的按钮

Click on button with selenium

提问人:Рыбалка С Арсением Джумайсымба 提问时间:10/29/2023 更新时间:10/29/2023 访问量:37

问:

def get_source_html(url):
    executable_path = "D:\python\Новая папка\chromedriver\chromedriver.exe"
    os.environ["webdriver.chrome.driver"] = executable_path

    chrome_options = Options()
    chrome_options.add_extension('D:\python\Новая папка\CMEAKGJGGJDLCPNCIGGLOBPJBKABHMJL_1_18_47_0.crx')
    #chrome_options.add_experimental_option("detach",True)

    driver = webdriver.Chrome(
        executable_path="D:\python\Новая папка\chromedriver\chromedriver.exe"
    )
    driver = webdriver.Chrome(executable_path=executable_path, chrome_options=chrome_options)
    driver.maximize_window()


    try:
        driver.get(url=url)
        time.sleep(10)
        driver.find_element(By.XPATH, "/html/body/div[1]/div[7]/div[4]/div[1]/div[4]/div[1]/div[3]/div[5]/div[1]/div[1]/div[1]/div[1]/a").click()

当我单击按钮时,没有任何反应,我通过 xpath 输入了它的路径。下面是页面代码图像。你能帮我吗

我试图通过xpath点击按钮

python 解析 selenium-webdriver 网络抓取 机器人

评论

0赞 Shawn 10/30/2023
如果网站/应用程序的 URL 可以公开访问,您可以共享它吗?对于 selenium 不点击 Web 元素,可能有多种原因。

答:

0赞 Stefan Leith 10/29/2023 #1

我会为按钮使用 id 而不是 xpath。通过 xpath 对元素的访问速度很慢,并且不像具体的 html id 那样稳定,例如:

<button id="buttonId">
Click me
</button>

然后使用 By.ID 而不是 By.XPATH:

driver.find_element(By.ID, "buttonId").click()

评论

0赞 Рыбалка С Арсением Джумайсымба 10/29/2023
但是没有<button id=“buttonId”>
0赞 Stefan Leith 10/29/2023
您必须将 ID 添加到 HTML 文件中的按钮
0赞 Shawn 10/30/2023
@StefanLeith - 这是不正确的。您不能根据自己的方便修改被测应用程序/网站的源代码/HTML,以便您可以自动化它。
0赞 Tamy Ak 10/29/2023 #2

取而代之的是 XPATH 使用这样的 id:

  driver.find_element(By.id(""))