服务器通过zmq提供分离的浏览器创建/驱动

ruamel.browser.server的Python项目详细描述


服务器通过zmq提供分离的浏览器创建/驱动

服务器在端口(默认5402)上侦听命令字符串。这些 命令应该来自ruamel.browser.client。

大多数命令字符串以br BID ...开头,因此需要 要有唯一的浏览器ID(BID)。

您可以检查BID是否可用(即从上一个打开的浏览器 运行)使用检查出价。如果没有,你应该初始化一个新的 使用init BID TYPE`, where `TYPE的浏览器,例如selenium用于 由selenium驱动的firefox浏览器。

如果要创建的浏览器需要在vnc下运行,请首先创建一个虚拟 使用display DISPNAME port_num x-sizey-size显示,然后初始化 使用init display DISPNAME BID TYP的浏览器(例如通过执行:

display virt1 5409 1000 500
init display virt1 stackoverflow selenium

您可以为不同的浏览器重新使用DISPNAME。如果不指定display,则 浏览器将在桌面上打开(需要在那里)。

一旦你有了一个浏览器的出价,你就可以向它发送命令。所有浏览器 应该实现退出(由br BID quit调用)和 将详细程度设置为0以外的值(br BID verbose NUM

您可以通过css选择以不同的方式在页面上找到elment 是推荐的方法(在构建网站时可以重用该技能 当你指定css文件时。语法为:

find [store ELEM] css|id|class MSG

其中,MSG用作css(或idclass)选择器的参数。如果 可选的store ELEM部分用于存储页面上的元素 在find或操作元素或dom树部分的其他命令中进一步使用。 find还设置一个“current element”,在以后的命令中使用 没有选择带有可选“elem id”参数的特定元素

Selenium后端提供的其他命令:

title: returns title of current page
current_url: return URL of page that is open
get SOMEURL: "browse" to the page SOMEURL
click [elem ELEM]: click on the current
displayed [elem ELEM]: check if the element is displayed (returns yes or no)
keys [elem ELEM] SEQUENCE_OF_KEYS: send keys to the selected element
down_up [elem ELEM]: similar to click but with a delay after mouse down of 0.5s
javascript PROGRAM: execute PROGRAM in the browser
inner [elem ELEM]: return the inner HTML attribute (for further processing on client side)
hover [elem ELEM]: hover the mouse above an element (might trigger some javascript loading)
findallid [elem ELEM] CSS: for elements by CSS selector (under ELEM if specified) return IDs

由于键可以单独发送到浏览器,因此可以进行交互 页面要求人们输入答案(而不是填写表格 元素一次完成)。使用inner还可以获取 这样的元素,例如,如果浏览器进行了一些基于javascript的扩展。

RBSSELENIUM环境变量

尽管自动化,特别是使用vnc显示,不能让您 面对广告,您可能需要设置环境变量RBSSELENIUM。 在环境的绝对路径下。var指向,应该至少有两个文件:

adblock/adblock_plus-2.7-fx+sm+tb+an.xpi
profile00/adblockplus/patterns.ini

将加载到Firefox中以防止广告打开。 这会极大地影响您浏览网站的速度。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
如何使用SeleniumWebDriver捕获特定元素的屏幕截图而不是整个页面?   WAS 8.5中的java JAXWS异步IO异常   java Android Studio无法解析数组适配器中的符号项   swing Java在运行时添加和删除按钮   java Spring Boot 2.0。x禁用特定配置文件的安全性   java这是我的最后一个代码,我在“if(Users[B].substring(0,1)==“1”){//Find String Cut Char Function”上遇到错误   单击菜单选项后打开“活动”时发生java错误   java Tic Tac Toe NullPointerException   java如何做数学题。随机进入for循环   java Http状态404错误处理spring mvc   java循环依赖双向@OneToMany JPA关系   java我可以在不重新启动项目的情况下添加servlet吗   java在蓝色/绿色部署中如何管理共享数据库?   这是一个系统。currentTimeMillis()是Java中时间性能的最佳度量?