当前位置: 首页 > 面试题库 >

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

高皓
2023-03-14
问题内容

我正在尝试使用Selenium-Python Client
Library自动执行到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,键入值,单击Submit等,这与预期的一样。

我只是想知道,我能做些什么使所有这些事情在后台发生吗?让我们说我不想监视脚本在做什么。我只希望它在后台运行。有什么办法可以做到这一点?

编辑

下载PyVirtualDisplay并使用命令将其安装在Windows中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



 类似资料:
  • 问题内容: 我有一个PyQt Gui应用程序。此应用程序有一个主窗口,应在启动后打开。 此应用程序应监听websocket。 我试着解决它是这样的: 但是,启动应用程序后,主窗口没有打开。 如果没有“ ws.run_forever()”行,则打开主窗口,但应用程序不侦听websocket。 我需要在“背景”中收听网络套接字吗?你能帮助我吗? PS :(对不起,我的英语) 问题答案: 感谢engin

  • 有什么特殊的配置需要保持TwilioiOS客户端在后台活动吗?我已经启用了“VoIP”和“音频”权限,但是我注意到我的应用在后台大约10分钟后就退出了。请注意,我已经禁用了“TCDevice”播放的声音,并且还对AVAudio会话配置进行了一些更改。

  • 问题内容: 谁能推荐适用于Python的Socket.IO客户端库?我环顾四周,但是我只能找到服务器实现或依赖于Twisted之类的框架。 我需要一个不依赖于其他框架的客户端库。 仅使用多种连接类型之一是不够的,因为python客户端将需要与多个socketio服务器一起工作,例如,其中许多都不支持websocket。 问题答案: Archie1986的回答很好,但是套接字更新(已更具体地讲,其协

  • 问题内容: 是否可以使用Selenium和任何浏览器测试客户端SSL证书?例如,您可以创建一个Web驱动程序并为其提供虚拟证书吗?还是使用准备好的Firefox配置文件? 问题答案: 为SSL客户端证书创建Selenium Firefox测试配置文件 您需要准备Selenium的WebDriver Firefox配置文件,其中已导入了客户端证书。 首先,在测试代码中使用以下配置启动WebDrive

  • Python 客户端 前面应用案例,都是直接通过 HTTP API 来跟 hyperledger 进行交互,操作比较麻烦。 还可以直接通过 hyperledger-py 客户端来进行更方便的操作。 安装 $ pip install hyperledger --upgrade 或直接源码安装 $ git clone https://github.com/yeasy/hyperledger-py.g

  • 问题内容: 我正在使用一些示例代码,该代码使我可以将消息从Python客户端发送到Android服务器(TCP)。但是,仅在关闭客户端后,该消息才会显示在Android仿真器上。 我可能缺少tcp套接字(首​​次使用和实现)背后的一些基本知识。 我的主要目的是使Android App中的按钮可以在单击时将不同的消息发送到单独的Linux系统上的Python客户端,并且Python客户端在收到该消息