【发布时间】:2021-03-09 03:06:06
【问题描述】:
我的 python 脚本在 Debian 谷歌云服务器上运行。我正在尝试从 Forexfactory.com/news。我在我的 macOS 上测试了我的代码,它运行良好。上传到服务器后,我必须将 chrome 选项参数添加到我的代码中,以帮助在 VM 中找到 chromedriver。正是在调试这个之后,selenium 无法找到所需的元素。
这是python代码:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import os
opt = Options()
opt.add_argument("--no-sandbox")
opt.add_argument("--disable-dev-shm-usage")
opt.add_argument("--headless")
driver = webdriver.Chrome(chrome_options=opt, executable_path=r'/home/rehanmahmood38/chromedriver')
URL = 'https://www.forexfactory.com/news'
driver.get(URL)
driver.implicitly_wait(5) # wait for seconds
uiOuter = driver.find_element_by_id('ui-outer')
aHref = driver.find_elements_by_css_selector('div.flexposts__story-title a')
span = driver.find_elements_by_css_selector('div.flexposts__storydisplay-info')
这是错误信息
Traceback (most recent call last):
File "ffmain.py", line 16, in <module>
uiOuter = driver.find_element_by_id('ui-outer')
File "/usr/lib/python3/dist-packages/selenium/webdriver/remote/webdriver.py", line 360, in find_element_by_id
return self.find_element(by=By.ID, value=id_)
File "/usr/lib/python3/dist-packages/selenium/webdriver/remote/webdriver.py", line 978, in find_element
'value': value})['value']
File "/usr/lib/python3/dist-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "/usr/lib/python3/dist-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"id","selector":"ui-outer"}
(Session info: headless chrome=83.0.4103.116)
(Driver info: chromedriver=2.40.565383 (76257d1ab79276b2d53ee976b2c3e3b9f335cde7),platform=Linux 4.19.0-12-cloud-amd64 x86_64)
知道为什么 selenium 无法找到元素
【问题讨论】:
标签: python selenium ubuntu selenium-webdriver selenium-chromedriver