服务器通过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第三方库


热门话题
导入javalibGDX项目后发生eclipse错误   如何将简单java游戏放入窗口(小程序)   jakarta ee Java从字节数组读取数据结构   使用工厂方法的Java抽象工厂与原型   java分配给字符串变量的内存和时间代价是多少?   onStart()中的java无止境循环   java如何从命令行运行Altium designer录制的宏?   使用向量、距离和图形   java局部旋转在openGL和LWJGL中的具体实现   测试从java运行Vasco OTP exe,并获取我的应用程序中使用的生成OTP   java从数据库查询中重新格式化json   java我需要用过滤的数组项检索MongoDB的对象   流简单Java服务器/客户端不工作?   Java从字符串的int-like子字符串中获取数字?   线程“AWTEventQueue0”java中的Swing异常中的VLCJ。lang.AbstractMethodError   jframe将素因子代码合并到JPanel Java中   Java中定义字符串常量的编程实践   java如何将安卓 ImageView捕捉到屏幕上的某个位置?   使用SeleniumWebDriver和Java测试开关选项卡