我正在尝试使用Selenium-Python客户端库自动登录我的Web应用程序.最终目标是学习Selenium的Python客户端库.所以,我真的很感谢那些进入Selenium-Python的人的答案.
我目前有这样的代码:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
browser = webdriver.Firefox() # Get local session of firefox
browser.get("http://myServer/WebAccess/login.html") # Load Application page
elem = browser.find_element_by_name("LoginID") # Find the Login box
elem.send_keys("Administrator")
elem = browser.find_element_by_name("Password") # Find the Password box
elem.send_keys("Administrator" + Keys.RETURN)
Run Code Online (Sandbox Code Playgroud)
这很好用,但都发生在前端.我的意思是它实际上打开了一个Firefox,值中的键,点击提交等,这是预期的.
我只是想知道,有什么办法让这一切能够在后台发生吗?让我们说我不想监视脚本正在做什么.我只是想让它在后台运行.有没有办法实现这个目标?
编辑
下载PyVirtualDisplay并使用该命令将其安装在我的窗口中setup.py install.也安装了EasyProcess和Path模块.
现在我有一个像这样的示例代码
from pyvirtualdisplay import Display
from selenium import webdriver
display = Display(visible=0, size=(1024, 768))
display.start()
browser = webdriver.Firefox()
browser.get('http://www.google.com')
print browser.title
browser.close()
display.stop()
Run Code Online (Sandbox Code Playgroud)
我在执行此代码时遇到以下错误:
`Traceback (most recent call last):
File "C:\Documents and Settings\user\Desktop\Sel.py", line 1, in <module>
from pyvirtualdisplay import Display
File "C:\Python27\lib\site-packages\pyvirtualdisplay\__init__.py", line 1, in <module>
from display import Display
File "C:\Python27\lib\site-packages\pyvirtualdisplay\display.py", line 2, in <module>
from pyvirtualdisplay.xephyr import XephyrDisplay
File "C:\Python27\lib\site-packages\pyvirtualdisplay\xephyr.py", line 8, in <module>
EasyProcess([PROGRAM, '-help'], url=URL, ubuntu_package=PACKAGE).check_installed()
File "C:\Python27\lib\site-packages\easyprocess\__init__.py", line 202, in check_installed
raise EasyProcessCheckInstalledError(self)
EasyProcessCheckInstalledError: cmd=['Xephyr', '-help']
OSError=[Error 2] The system cannot find the file specified
Program install error! `
Run Code Online (Sandbox Code Playgroud)
Firefox(和其他图形浏览器)需要X显示.您可以在PyVirtualDisplay的帮助下使用虚拟的:
from pyvirtualdisplay import Display
display = Display(visible=0, size=(1024, 768))
display.start()
browser = webdriver.Firefox()
... more selenium code ...
display.stop()
Run Code Online (Sandbox Code Playgroud)
除了PyVirtualDisplay,你还需要它的依赖xfvb和Xephyr(在Debian: apt-get install -y xvfb xserver-xephyr)
| 归档时间: |
|
| 查看次数: |
5954 次 |
| 最近记录: |