服务器通过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(或id或class)选择器的参数。如果 可选的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中以防止广告打开。 这会极大地影响您浏览网站的速度。