使用Selenium单击自动化

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Selenium单击自动化相关的知识,希望对你有一定的参考价值。

为了从网站自动下载,我使用这个python脚本来自动执行点击操作。但点击不起作用。

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
import time

browser = webdriver.Firefox()
browser.maximize_window()
browser.implicitly_wait(20)
browser.get('http://download.cnet.com/most-popular/windows/')
linkElem = WebDriverWait(browser, 20).until(EC.element_to_be_clickable((By.PARTIAL_LINK_TEXT, "CCleaner")))
linkElem.click() # follows the "CCleaner" link

我第一次遇到这个错误:

selenium.common.exceptions.ElementNotInteractableException: Message: Element could not be scrolled into view

然后我添加这一行:

linkElem = WebDriverWait(browser, 20).until(EC.element_to_be_clickable((By.PARTIAL_LINK_TEXT, "CCleaner")))

现在我收到这个错误:

    linkElem = WebDriverWait(browser, 20).until(EC.element_to_be_clickable((By.PARTIAL_LINK_TEXT, "CCleaner")))
  File "/usr/lib/python2.7/site-packages/selenium/webdriver/support/wait.py", line 80, in until
    raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message: 

我尝试过人们用来解决这个问题但没有用的东西。

答案

您的代码似乎与Chrome一起使用,我只添加了底部的两行,并下载了CCleaner。

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
import time

browser = webdriver.Chrome()  # Firefox()
browser.maximize_window()
browser.implicitly_wait(20)
browser.get('http://download.cnet.com/most-popular/windows/')
linkElem = WebDriverWait(browser, 20).until(EC.element_to_be_clickable((By.PARTIAL_LINK_TEXT, "CCleaner")))
linkElem.click() # follows the "CCleaner" link

download = browser.find_element_by_id('download-now-btn-text')
download.click()

以上是关于使用Selenium单击自动化的主要内容,如果未能解决你的问题,请参考以下文章

使用Selenium单击自动化

Selenium Xpath元素无法定位 NoSuchElementException: Message: no such element: Unable to locate element(代码片段

自动化:Selenium:无法单击锚标记

右键单击并使用 Selenium webdriver 拖放

如何单击使用 Selenium WebDriver 隐藏的元素?

无法单击 Selenium 和 Java 的树视图