我有一个使用selenium登录站点的工作脚本,如下所示:
脚本.py
from pyvirtualdisplay import Display
from selenium import webdriver
display = Display(visible=0, size=(1024, 768))
display.start()
browser = webdriver.Firefox()
actions = webdriver.ActionChains(browser)
browser.get('some_url_I_need')
content = browser.find_element_by_id('content') # Error on this line
通过ssh
在一个amazon ubuntu框中运行该脚本,我按以下方式安装了firefox:
sudo apt-get install firefox
我得到的错误是:
selenium.common.exceptions.NoSuchElementException: Message: u'Unable to locate element: {"method":"id","selector":"content"}'
如果我也通过ssh
在另一个ubuntu框上运行相同的脚本,它运行得很好,没有错误,但是我不知道firefox是如何安装在那个框上的,可能是什么原因导致了这个错误。是否安装了相关的firefox,以及如何正确安装它以与pyvirtualdisplay和selenium一起使用?
如果网站上有一些动态内容,您需要等待一段时间 直到你能找回想要的元素。尝试以下代码示例:
检查配置
是否为
pyvirtualdisplay
安装了后端,如xvfb
和xephyr
? 如果不是尝试:
sudo apt-get install xvfb xserver-xephyr
第一次尝试:添加一个简单的
time.sleep()
第二次尝试:将
browser.implicitly_wait(30)
添加到Selenium Web驱动程序中。相关问题 更多 >
编程相关推荐