gpt4 book ai didi

python - Selenium-Python 客户端库 - 后台自动化

转载 作者:太空狗 更新时间:2023-10-29 22:23:42 30 4
gpt4 key购买 nike

我正在尝试使用 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)

这很好用,但一切都发生在前端。我的意思是它确实打开了一个 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()

执行此代码时出现以下错误:

`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! `

最佳答案

Firefox(和其他图形浏览器)需要 X 显示器。您可以在 PyVirtualDisplay 的帮助下使用虚拟的:

from pyvirtualdisplay import Display
display = Display(visible=0, size=(1024, 768))
display.start()

browser = webdriver.Firefox()
... more selenium code ...

display.stop()

除了 PyVirtualDisplay,您还需要它的依赖项 xfvb 和 Xephyr(在 debian 上:apt-get install -y xvfb xserver-xephyr)

关于python - Selenium-Python 客户端库 - 后台自动化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6924387/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com