Pep*_*zza 5 python ubuntu selenium pyvirtualdisplay
我有一个使用selenium登录网站的工作脚本,如下所示:
script.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
Run Code Online (Sandbox Code Playgroud)
在亚马逊ubuntu框上运行该脚本,通过ssh以下方式安装firefox:
sudo apt-get install firefox
我得到的错误是:
selenium.common.exceptions.NoSuchElementException:消息:u'无法找到元素:{"method":"id","selector":"content"}'
如果我也在另一个ubuntu盒子上运行相同的脚本ssh,它运行正常,没有错误,但我不知道firefox是如何安装在该盒子上的,可能是该错误的原因.是关联firefox安装以及如何正确安装它以与pyvirtualdisplay和selenium一起使用?
Jon*_*Jon 11
如果网站上有一些动态内容,您需要等待一段时间,直到您可以检索所需的元素.尝试以下代码示例:
检查配置
是否安装了后端pyvirtualdisplay喜欢xvfb和xephyr?如果不,
尝试: sudo apt-get install xvfb xserver-xephyr
首先尝试:添加一个简单的time.sleep()
import time
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')
time.sleep(5) # sleep for 5 seconds
content = browser.find_element_by_id('content') # Error on this line
Run Code Online (Sandbox Code Playgroud)
第二次尝试:添加browser.implicitly_wait(30)到您的Selenium webdriver.
from pyvirtualdisplay import Display
from selenium import webdriver
display = Display(visible=0, size=(1024, 768))
display.start()
browser = webdriver.Firefox()
browser.implicitly_wait(30) # seconds
actions = webdriver.ActionChains(browser)
browser.get('some_url_I_need')
content = browser.find_element_by_id('content') # Error on this line
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8596 次 |
| 最近记录: |