【发布时间】:2021-05-27 22:30:21
【问题描述】:
我有以下代码,我试图浏览我的公司网站,抓取一些数据并单击列表中每个人的下载链接。当我尝试点击下载链接时出现错误(点击后会自动下载文件的链接)。
任何想法为什么这不起作用?我得到的错误就像什么都没找到一样。下面发布的代码以及来自网站的代码
from selenium.webdriver import Chrome, ChromeOptions
chrome_options = ChromeOptions()
chrome_options.add_experimental_option("prefs",
{"download.default_directory": downloads,
"download.prompt_for_download": False,
"download.directory_upgrade": True,
"safebrowsing.enabled": True,
"safebrowsing.disable_download_protection": True})
driver = Chrome(ChromeDriverManager().install(), chrome_options=chrome_options)
gameIds = []
for p in people:
driver.get(base_url + p)
WebDriverWait(driver, 0.01).until(EC.presence_of_element_located((By.XPATH, '//*[@id="resumeContainer"]/ul/li/div/div[2]/label'))).click()
gameIds.extend(gameIds_temp)
print(gameIds)
<div _ngcontent-isj-c5="" class="col-md-8 resume-name-container"><label _ngcontent-isj-c5="" class="resume-name pointer" digitaldata-resume="cs Resume_2019.doc>Profile Page">CS Resume_2019.doc</label><!----><p _ngcontent-isj-c5="" class="resumemodified mb-0">Last updated <b _ngcontent-isj-c5=""><!----> 11 months ago
</b></p></div>
<label _ngcontent-isj-c5="" class="resume-name pointer" digitaldata-resume="cs Resume_2019.doc>Profile Page">cs Resume_2019.doc</label>
C:\Users\xx\Desktop\Python\Accelerators\scraper.py:120: DeprecationWarning: use options instead of chrome_options
driver = Chrome(ChromeDriverManager().install(), chrome_options=chrome_options)
Traceback (most recent call last):
File "C:\Users\xx\Desktop\Python\Accelerators\scraper.py", line 157, in <module>
WebDriverWait(driver, 0.01).until(EC.presence_of_element_located((By.XPATH, '//*[@id="resumeContainer"]/ul/li/div/div[2]/label'))).click()
File "C:\Users\xx\AppData\Roaming\Python\Python39\site-packages\selenium\webdriver\support\wait.py", line 80, in until
raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message:
【问题讨论】:
-
这并不是一个真正独立的例子。您使用的是哪个浏览器?您可能没有设置下载目录并禁用下载提示
-
使用 Chrome - 不知道你所说的其余部分是什么意思......你能澄清一下吗?
-
stackoverflow.com/questions/45645648/… 这是用于 Firefox 但也有类似的命令用于 chrome
-
id resumeContainer 在你的 html sn-p 中是没有的,那么定位器应该如何工作呢?