SeleniumLibrary4.5.0 关键字详解(五)

SeleniumLibrary4.5.0 关键字详解(五)

库版本:4.5.0
库范围:全局
命名参数:受支持

简介
SeleniumLibrary是Robot Framework的Web测试库。

本文档说明了如何使用SeleniumLibrary提供的关键字。 有关安装,支持等信息,请参见 python3.9.0 + robotframework + selenium3 实例体验。

有关robotframework框架的更多信息,请参见 https://blog.csdn.net/mask5726/category_10537277.html。

SeleniumLibrary在内部使用Selenium WebDriver模块来控制Web浏览器。 有关常规Selenium的更多信息,请参见http://seleniumhq.org。

内容列表
1、元素定位
2、浏览器和窗口
3、超时,等待和延迟
4、运行故障功能
5、布尔参数
6、webDriver事件
7、线程支持
8、插件
9、引入
11、关键字

关键字
6 Capture Element Screenshot
参数:

locator
filename=selenium-element-screenshot-{index}.png

说明:

从定位器标识的元素捕获屏幕截图,并将其嵌入到日志文件中。

有关文件名参数的详细信息,请参见捕获页面屏幕截图。有关定位器语法的详细信息,请参见“定位元素”部分。

返回创建的元素屏幕快照的绝对路径。

从元素捕获屏幕截图的支持在浏览器供应商中受到的支持有限。请检查浏览器供应商驱动程序文档,该浏览器是否支持捕获来自元素的屏幕截图。

SeleniumLibrary 3.3中的新功能。 SeleniumLibrary 4.2中新增了对EMBED的支持。

EMBED:

Embed 对象是 HTML5 中的新对象。

Embed 对象表示 HTML 元素。

您可以通过使用 getElementById() 来访问 元素:

var x = document.getElementById(“myEmbed”);
您可以通过使用 document.createElement() 方法来创建 元素:

var x = document.createElement(“EMBED”);
例子:

Capture Element Screenshot id:image_id
Capture Element Screenshot id:image_id ${OUTPUTDIR}/id_image_id-1.png
Capture Element Screenshot id:image_id EMBED
7 Capture Page Screenshot
参数:

filename=selenium-screenshot-{index}.png

说明:

截取当前页面的屏幕截图并将其嵌入到日志文件中。

filename参数指定将屏幕快照写入其中的文件的名称。可以在导入库时或使用“设置屏幕快照目录”关键字来设置保存屏幕快照的目录。如果未配置目录,则屏幕截图将保存到写入Robot Framework日志文件的目录中。

如果文件名等于EMBED(不区分大小写),则屏幕截图将作为Base64图像嵌入到log.html中。在这种情况下,不会在文件系统中创建文件。

从SeleniumLibrary 1.8开始,如果文件名包含标记{index},它将自动替换为唯一的运行索引,以防止文件被覆盖。索引从1开始,可以使用Python的格式字符串语法自定义它们的表示方式。

返回创建的屏幕快照文件的绝对路径,或者如果文件名等于EMBED,则返回单词EMBED。

SeleniumLibrary 4.2中新增了对EMBED的支持。

例子:

Capture Page Screenshot
File Should Exist ${OUTPUTDIR}/selenium-screenshot-1.png
${path} = Capture Page Screenshot
File Should Exist ${OUTPUTDIR}/selenium-screenshot-2.png
File Should Exist ${path}
Capture Page Screenshot custom_name.png
File Should Exist ${OUTPUTDIR}/custom_name.png
Capture Page Screenshot custom_with_index_{index}.png
File Should Exist ${OUTPUTDIR}/custom_with_index_1.png
Capture Page Screenshot formatted_index_{index:03}.png
File Should Exist ${OUTPUTDIR}/formatted_index_001.png
Capture Page Screenshot EMBED
File Should Not Exist EMBED
8 Checkbox Should Be Selected
参数:

locator

说明:

验证未选中/选中复选框定位符。

有关定位器语法的详细信息,请参见“定位元素”部分。

9 Checkbox Should Not Be Selected
参数:

locator

说明:

验证未选中/选中复选框定位符。

有关定位器语法的详细信息,请参见“定位元素”部分。

10 Choose File
参数:

locator
file_path

说明:

将file_path输入到文件输入字段定位器中。

此关键字最常用于将文件输入到上传表单中。关键字不检查file_path是执行测试的机器上可用的文件或文件夹。如果file_path指向文件,并且在使用Selenium Grid时,Selenium会神奇地将文件从执行测试的计算机传输到运行浏览器的Selenium Grid节点。然后,Selenium将把来自节点文件系统的文件路径发送到浏览器。

不检查file_path,是SeleniumLibrary 4.0中的新功能。

例子:

Choose File my_upload_field ${CURDIR}/trades.csv
11 Clear Element Text
参数:

locator

说明:

清除定位器标识的文本输入元素的值。

有关定位器语法的详细信息,请参见“定位元素”部分。

12 Click Button
参数:

locator
modifier=False

说明:

单击定位器标识的按钮。

有关定位器语法的详细信息,请参见“定位元素”部分。使用默认定位器策略时,将使用id,名称和值搜索按钮。

有关修饰符参数的详细信息,请参见Click Element关键字。

modifier参数在SeleniumLibrary 3.3中是新的。

13 Click Element
参数:

locator
modifier=False
action_chain=False

说明:

单击定位器标识的元素。

有关定位器语法的详细信息,请参见“定位元素”部分。

单击元素时,修饰符参数可用于传递Selenium键。 +可用作不同selenium键的分隔符。 CTRL在内部转换为CONTROL键。修饰符是空格,不区分大小写,例如ALT键支持格式“ alt”和“ aLt”。如果修饰符与Selenium Keys不匹配,则关键字失败。

如果action_chain参数为true,请参阅布尔参数以获取有关如何设置布尔参数的更多详细信息,然后关键字使用基于ActionChain的click代替<web_element> .click()函数。如果同时定义了action_chain和修饰符,则将使用修饰符执行单击,而action_chain将被忽略。

例子:

Click Element id:button # Would click element without any modifiers.
Click Element id:button CTRL # Would click element with CTLR key pressed down.
Click Element id:button CTRL+ALT # Would click element with CTLR and ALT keys pressed down.
Click Element id:button action_chain=True # Clicks the button using an Selenium ActionChains
SeleniumLibrary 3.2中的modifier参数是新的,SeleniumLibrary 4.1中的action_chain参数是新的。

14 Click Element At Coordinates
参数:

locator
xoffset
yoffset

说明:

单击xoffset / yoffset处的元素定位器。

移动光标,并从该点开始计算元素的中心和x / y坐标。

有关定位器语法的详细信息,请参见“定位元素”部分。

15 Click Image
参数:

locator
modifier=False

说明:

单击定位器识别的图像。

有关定位器语法的详细信息,请参见“定位元素”部分。使用默认定位器策略时,将使用id,name,src和alt搜索图像。

有关修饰符参数的详细信息,请参见Click Element关键字。

修改器参数在SeleniumLibrary 3.3中是新的。

16 Click Link
参数:

locator
modifier=False

说明:

单击定位器标识的链接。

有关定位器语法的详细信息,请参见“定位元素”部分。使用默认定位器策略时,将使用id,名称,href和链接文本搜索链接。

有关修饰符参数的详细信息,请参见Click Element关键字。

修改器参数在SeleniumLibrary 3.3中是新的。

17 Close All Browsers
说明:

关闭所有打开的浏览器并重置浏览器缓存。

使用此关键字之后,将从“打开浏览器”关键字返回的新索引重置为1。

此关键字应在测试或套件拆卸中使用,以确保关闭所有浏览器。

18 Close Browser
说明:

关闭当前的浏览器。

19 Close Window
说明:

关闭当前打开并选择的浏览器窗口/选项卡。

20 Cover Element
参数:

locator

说明:

将使用蓝色div覆盖定位器标识的元素,而不会破坏页面布局。

有关定位器语法的详细信息,请参见“定位元素”部分。

SeleniumLibrary 3.3.0的新功能。

例子: |Cover Element | css:div#container |

21 Create Webdriver
参数:

driver_name
alias=None
kwargs={}
**init_kwargs

说明:

创建Selenium WebDriver的实例。

与Open Browser类似,但是允许将参数直接传递给创建的WebDriver实例。仅当Open Browser提供的功能不足时,才应使用此关键字。

driver_name必须是WebDriver实现名称,例如Firefox,Chrome,IE,Opera,Safari,PhantomJS或Remote。

可以使用Python字典kwargs或使用关键字参数** init_kwargs来配置已初始化的WebDriver。这些参数无需任何处理即可直接传递给WebDriver。有关受支持参数的详细信息,请参见Selenium API文档。

例子:

Use proxy with Firefox

${proxy}= Evaluate selenium.webdriver.Proxy() modules=selenium, selenium.webdriver
p r o x y . h t t p p r o x y = S e t V a r i a b l e l o c a l h o s t : 8888 C r e a t e W e b d r i v e r F i r e f o x p r o x y = {proxy.http_proxy}= Set Variable localhost:8888 Create Webdriver Firefox proxy= proxy.httpproxy=SetVariablelocalhost:8888CreateWebdriverFirefoxproxy={proxy}

Use proxy with PhantomJS

s e r v i c e a r g s = C r e a t e L i s t − − p r o x y = 192.168.132.104 : 8888 C r e a t e W e b d r i v e r P h a n t o m J S s e r v i c e a r g s = {service args}= Create List --proxy=192.168.132.104:8888 Create Webdriver PhantomJS service_args= serviceargs=CreateListproxy=192.168.132.104:8888CreateWebdriverPhantomJSserviceargs={service args}
返回此浏览器实例的索引,以后可用于切换回该索引。索引从1开始,并在使用“关闭所有浏览器”关键字时重置为该索引。有关示例,请参见切换浏览器。

22 Current Frame Should Contain
参数:

text
loglevel=TRACE

说明:

验证当前框架是否包含文本。

有关loglevel参数的说明,请参见页面应包含。

在SeleniumLibrary 3.0之前,此关键字被命名为Current Frame Contains。

23 Current Frame Should Not Contain
参数:

text
loglevel=TRACE

说明:

验证当前框架不包含文本。

有关loglevel参数的说明,请参见Page Should Contain。



作者:马克社区何老师