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、关键字

关键字
90 Maximize Browser Window
说明:

最大化当前浏览器窗口。

91 Mouse Down
参数:

locator

说明:

模拟在元素定位器上按下鼠标左键。

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

在不释放鼠标键的情况下按下元素。

另请参见更具体的关键字Mouse Down On Image”和“Mouse Down On Link”。

92 Mouse Down On Image
参数:

locator

说明:

在定位器识别的图像上模拟鼠标按下事件。

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

93 Mouse Down On Link
参数:

locator

说明:

模拟定位器标识的链接上的鼠标按下事件。

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

94 Mouse Out
参数:

locator

说明:

模拟将鼠标移离元素定位器。

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

95 Mouse Over
参数:

locator

说明:

模拟将鼠标悬停在元素定位器上。

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

96 Mouse Up
参数:

locator

说明:

模拟释放元素定位器上的鼠标左键。

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

97 Open Browser
参数:

url=None
browser=firefox
alias=None
remote_url=False
desired_capabilities=None
ff_profile_dir=None
options=None
service_log_path=None
executable_path=None

说明:

打开一个新的浏览器实例到可选的URL。

browser参数指定要使用的浏览器。下表列出了受支持的浏览器。浏览器名称不区分大小写,某些浏览器具有多个受支持的名称。

Browser Name(s)
Firefox firefox, ff
Google Chrome googlechrome, chrome, gc
Headless Firefox headlessfirefox
Headless Chrome headlesschrome
Internet Explorer internetexplorer, ie
Edge edge
Safari safari
Opera opera
Android android
Iphone iphone
PhantomJS phantomjs
HTMLUnit htmlunit
HTMLUnit with Javascript htmlunitwithjs
为了能够实际使用这些浏览器之一,您需要具有匹配的Selenium浏览器驱动程序。有关更多详细信息,请参见项目文档。 HeadlessFirefox和 HeadlessChrome是SeleniumLibrary 3.1.0中的新增功能,并且需要Selenium 3.8.0或更高版本。

打开浏览器后,可以使用可选的URL将浏览器导航到所需的地址。

可选别名是为此浏览器实例提供的别名,可用于在浏览器之间进行切换。当给两个别名使用相同的别名时,第一个关键字将打开一个新的浏览器,而第二个关键字将切换到已经打开的浏览器,并且不会打开一个新的浏览器。别名定义会覆盖浏览器定义。如果使用相同的别名但定义了不同的浏览器,则切换到具有相同别名的浏览器并且不会打开新的浏览器。切换的另一种方法是使用此关键字返回的索引。这些索引从1开始,在打开新的浏览器时递增,在调用“关闭所有浏览器”时重置为1。有关更多信息和示例,请参见切换浏览器。

可选的remote_url是Selenium Grid的URL。

使用Sauce Labs时,可选的required_capabilities可用于配置浏览器或浏览器和操作系统的日志记录首选项。可以使用Python字典或格式为key1:value1,key2:value2的字符串来提供所需的功能。 Selenium文档列出了可以启用的可能功能。

如果您希望覆盖Selenium使用的默认配置文件,则可选的ff_profile_dir是Firefox配置文件目录的路径。请注意,在SeleniumLibrary 3.0之前,该库包含其自己的配置文件,默认情况下使用该配置文件。 ff_profile_dir也可以是selenium.webdriver.FirefoxProfile的实例。第三种选择是,可以使用FirefoxProfile方法和属性以与options参数相同的方式使用方法和属性来定义配置文件。示例:可以使用FirefoxProfile set_preference定义不同的配置文件设置。请参阅下面的选项参数文档,了解如何处理反斜杠转义。

可选options参数允许定义浏览器特定的Selenium选项。在Chrome的示例中,options参数允许定义以下方法和属性,对于Firefox,这些方法和属性可用。请注意,并非SeleniumLibrary支持的所有浏览器都提供Selenium选项。因此,请查阅Selenium文档,哪些浏览器确实支持Selenium选项。如果浏览器参数是android,则使用Chrome选项。selenium选项也可提供。当使用remote_url参数时,也支持Selenium选项。

SeleniumLibrary选项参数接受两种不同格式的Selenium选项:作为字符串和作为Selenium选项类实例的Python对象。

字符串格式允许在Robot Framework测试数据中定义Selenium选项方法或属性及其参数。方法和属性名称区分大小写和空格,并且必须与Selenium选项的方法和属性名称匹配。定义方法时,必须以与python中相似的方式进行定义:方法名称,开括号,零个至多个参数和闭括号。如果需要为一个方法定义多个参数,则参数必须用逗号分隔,就像在Python中一样。例如:add_argument(“-headless”)或add_experimental_option(“ key”,“ value”)。属性的定义方式与Python中类似:属性名称,等号和属性值。例如,headless = True。多个方法和属性必须用分号分隔。例如:add_argument(“-headless”); add_argument(“-start-maximized”)。

参数允许定义Python数据类型,并使用Python ast.literal_eval评估参数。字符串必须用单引号或双引号引起来,例如‘值’或“值”。也可以通过不使用引号引起来定义其他Python内置数据类型,例如True或None。

字符串格式是空间友好的。通常,空格不会更改定义方法或属性。有两个例外。在某些Robot Framework测试数据格式中,两个或多个空格被视为单元格分隔符,而不是定义单个参数,可以定义两个或多个参数。字符串参数中的空格不会删除,而是保留原样。示例add_argument(“ --headless”)与add_argument(“-headless”)相同。但是add_argument(“ --headless”)与add_argument(“ --headless”)不同,因为引号内的空格不会被删除。请注意,如果选项字符串包含反斜杠(例如Windows操作系统路径),则反斜杠需要在Robot Framework数据和Python端都进行转义。这意味着必须使用四个反斜杠字符写入单个反斜杠。例如,Windows路径:“ C:\ path \ to \ profile”必须写为“ C:\\\ path \\ to \\ profile”。写反斜杠的另一种方法是使用Python原始字符串,示例编写:r“ C:\ path \ to \ profile”。

作为最后一种格式,选项自变量还支持将Selenium选项作为Python类实例接收。在这种情况下,实例按原样使用,SeleniumLibrary不会将实例转换为其他格式。例如,如果以下代码返回值已保存到Robot Framework数据中的$ {options}变量中:

options = webdriver.ChromeOptions()

options.add_argument(’–disable-dev-shm-usage’)

return options
然后可以将$ {options}变量用作options的参数。

示例选项参数可用于启动利用Chromium嵌入式框架的基于Chomium的应用程序。要禁用基于Chomium的应用程序,请使用选项定义Binary_location属性并使用add_argument方法定义应用程序的远程调试端口。打开浏览器后,测试可以与被测系统的嵌入式Web内容进行交互。

可选的service_log_path参数定义在其中写入浏览器驱动程序日志的文件的名称。如果service_log_path参数包含标记{index},它将自动替换为唯一的运行索引,以防止文件被覆盖。索引从1开始,可以使用Python的格式字符串语法自定义它们的表示方式。

可选的executable_path参数定义驱动程序可执行文件的路径,例如chromedriver或geckodriv的路径。如果未定义,则假定可执行文件位于$ PATH中。

例子:

Open Browser http://example.com Chrome
Open Browser http://example.com Firefox alias=Firefox
Open Browser http://example.com Edge remote_url=http://127.0.0.1:4444/wd/hub
Open Browser about:blank
Open Browser browser=Chrome
Alias例子:

${1_index} = Open Browser http://example.com Chrome alias=Chrome # Opens new browser because alias is new.
${2_index} = Open Browser http://example.com Firefox # Opens new browser because alias is not defined.
${3_index} = Open Browser http://example.com Chrome alias=Chrome # Switches to the browser with Chrome alias.
4 i n d e x = O p e n B r o w s e r h t t p : / / e x a m p l e . c o m C h r o m e a l i a s = {4_index} = Open Browser http://example.com Chrome alias= 4index=OpenBrowserhttp://example.comChromealias={1_index} # Switches to the browser with Chrome alias.
Should Be Equal ${1_index} ${3_index}
Should Be Equal ${1_index} ${4_index}
Should Be Equal ${2_index} ${2}
Example when using Chrome options method:

Open Browser http://example.com Chrome options=add_argument("–disable-popup-blocking"); add_argument("–ignore-certificate-errors") # Sting format.
KaTeX parse error: Expected 'EOF', got '#' at position 29: …et Options #̲ Selenium optio…{options}
Open Browser None Chrome options=binary_location="/path/to/binary";add_argument(“remote-debugging-port=port”) # Start Chomium-based application.
Open Browser None Chrome options=binary_location=r"C:\path\to\binary" # Windows OS path escaping.
Example for FirefoxProfile

Open Browser http://example.com Firefox ff_profile_dir=/path/to/profile # Using profile from disk.
Open Browser http://example.com Firefox ff_profile_dir=KaTeX parse error: Expected 'EOF', got '#' at position 27: …file_instance} #̲ Using instance… PATH中)。如果提供的配置选项不够,则可以使用Create Webdriver进行自定义 浏览器初始化甚至更多。

SeleniumLibrary 3.1中新增了对本地浏览器应用desired_capabilities参数的功能。

使用别名决定SeleniumLibrary 4.0中是否打开了新浏览器。 options和service_log_path是SeleniumLibrary 4.0中的新增功能。 在SeleniumLibrary 4.0中新增了对ff_profile_dir的支持,它接受一个seelenium.webdriver.FirefoxProfile实例,并支持使用方法和属性定义FirefoxProfile。

SeleniumLibrary 4.1中新增了将url设为可选的功能。

"executable_path’'参数是SeleniumLibrary 4.2中的新增功能。

98 Open Context Menu
参数:

locator

说明:

在由定位器标识的元素上打开上下文菜单。

99 Page Should Contain
参数:

text
loglevel=TRACE

说明:

验证当前页面是否包含文本。

如果此关键字失败,它将使用可选的loglevel参数指定的日志级别自动记录页面源。有效的日志级别为DEBUG,INFO(默认),WARN和NONE。如果日志级别为"无’'或低于当前活动日志级别,则不会记录源。

100 Page Should Contain Button
参数:

locator
message=None
loglevel=TRACE

说明:

验证从当前页面找到的按钮定位器。

有关消息和日志级别参数的说明,请参见页面应包含元素。

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

101 Page Should Contain Checkbox
参数:

locator
message=None
loglevel=TRACE

说明:

验证从当前页面找到的复选框定位器。

有关消息和日志级别参数的说明,请参见页面应包含元素。

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

102 Page Should Contain Element
参数:

locator
message=None
loglevel=TRACE
limit=None

说明:

验证在当前页面上找到的元素定位符。

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

消息参数可用于覆盖默认错误消息。

限制参数可用于定义页面应包含多少个元素。当limit为None时(默认)页面可以包含一个或多个元素。当limit为数字时,页面必须包含相同数量的元素。

有关日志级别参数的说明,请参见页面应包含。

示例:假定定位符与两个元素匹配

Page Should Contain Element div_name limit=1 # Keyword fails.
Page Should Contain Element div_name limit=2 # Keyword passes.
Page Should Contain Element div_name limit=none # None is considered one or more.
Page Should Contain Element div_name # Same as above.
limit 参数是SeleniumLibrary 3.0中的新增功能。

103 Page Should Contain Image
参数:

locator
message=None
loglevel=TRACE

说明:

验证从当前页面找到的由定位器标识的图像。

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

有关消息和日志级别参数的说明,请参见页面应包含元素。

104 Page Should Contain Link
参数:

locator
message=None
loglevel=TRACE

说明:

验证从当前页面找到的由定位器标识的链接。

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

有关消息和日志级别参数的说明,请参见页面应包含元素。

105 Page Should Contain List
参数:

locator
message=None
loglevel=TRACE

说明:

验证从当前页面找到的选择列表定位符。

有关消息和日志级别参数的说明,请参见页面应包含元素。

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

106 Page Should Contain Radio Button
参数:

locator
message=None
loglevel=TRACE

说明:

验证从当前页面找到的单选按钮定位器。

有关消息和日志级别参数的说明,请参见页面应包含元素。

有关定位器语法的详细信息,请参见``定位元素’'部分。使用默认定位器策略时,将使用id,name和value搜索单选按钮。

107 Page Should Contain Textfield
参数:

locator
message=None
loglevel=TRACE

说明:

验证从当前页面找到的文本字段定位器。

有关消息和日志级别参数的说明,请参见页面应包含元素。

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

108 Page Should Not Contain
参数:

text
loglevel=TRACE

说明:

验证当前页面不包含文本。

有关日志级别参数的说明,请参见页面应包含。

109 Page Should Not Contain Button
参数:

locator
message=None
loglevel=TRACE

说明:

验证当前页面中找不到按钮定位器。

有关消息和日志级别参数的说明,请参见页面应包含元素。

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

110 Page Should Not Contain Checkbox
参数:

locator
message=None
loglevel=TRACE

说明:

验证在当前页面中未找到复选框定位器。

有关消息和日志级别参数的说明,请参见页面应包含元素。

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

111 Page Should Not Contain Element
参数:

locator
message=None
loglevel=TRACE

说明:

验证在当前页面上找不到该元素定位符。

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

有关消息和日志级别参数的说明,请参见页面应包含。

112 Page Should Not Contain Image
参数:

locator
message=None
loglevel=TRACE

说明:

验证在当前页面上找不到由定位器标识的图像。

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

有关消息和日志级别参数的说明,请参见页面应包含元素。

113 Page Should Not Contain Link
参数:

locator
message=None
loglevel=TRACE

说明:

验证在当前页面上找不到由定位器标识的链接。

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

有关消息和日志级别参数的说明,请参见页面应包含元素。

114 Page Should Not Contain List
参数:

locator
message=None
loglevel=TRACE

说明:

验证从当前页面找不到选择列表定位符。

有关消息和日志级别参数的说明,请参见页面应包含元素。

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

115 Page Should Not Contain Radio Button
参数:

locator
message=None
loglevel=TRACE

说明:

验证从当前页面找不到单选按钮定位符。

有关消息和日志级别参数的说明,请参见页面应包含元素。

有关定位器语法的详细信息,请参见``定位元素’'部分。使用默认定位器策略时,将使用id,name和value搜索单选按钮。

116 Page Should Not Contain Textfield
参数:

locator
message=None
loglevel=TRACE

说明:

验证从当前页面找不到文本字段定位符

有关消息和日志级别参数的说明,请参见页面应包含元素。

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

117 Press Key
参数:

locator
key

说明:

SeleniumLibrary 4.0中已弃用。改用 Press Keys 。

118 Press Keys
参数:

locator=None
*keys

说明:

模拟用户在元素上或活动浏览器上按下键。

如果定位器评估为假,请参阅布尔参数以获取更多详细信息,然后将密钥发送到当前活动的浏览器。否则,将搜索元素并将关键字发送到定位器标识的元素。在以后的情况下,如果找不到元素,则关键字失败。有关定位器语法的详细信息,请参见``定位元素’'部分。

键参数可以包含一个或多个字符串,但不能为空。键也可以是Selenium键和字符串的组合,也可以是一个Selenium键。如果Selenium键与字符串结合使用,则Selenium键和字符串必须以+字符分隔,如CONTROL + c中所示。 Selenium键是空格且区分大小写,并且Selenium键不会在字符串内部进行解析。示例AALTO将发送字符串AALTO和未在字符串内部解析的ALT。但是A + ALT + O会从密钥参数中找到Selenium ALT密钥。也可以同时按下许多Selenium键,例如’ALT + ARROW_DOWN’。

如果在键参数中检测到Selenium Key,则关键字将按下Selenium Key,发送字符串然后释放Selenium Key。如果关键字需要将Selenium Key作为字符串发送,则每个字符必须以+字符分隔,例如E + N + D。

例子:

Press Keys text_field AAAAA # Sends string “AAAAA” to element.
Press Keys None BBBBB # Sends string “BBBBB” to currently active browser.
Press Keys text_field E+N+D # Sends string “END” to element.
Press Keys text_field XXX YY # Sends strings “XXX” and “YY” to element.
Press Keys text_field XXX+YY # Same as above.
Press Keys text_field ALT+ARROW_DOWN # Pressing “ALT” key down, then pressing ARROW_DOWN and then releasing both keys.
Press Keys text_field ALT ARROW_DOWN # Pressing “ALT” key and then pressing ARROW_DOWN.
Press Keys text_field CTRL+c # Pressing CTRL key down, sends string “c” and then releases CTRL key.
Press Keys button RETURN # Pressing “ENTER” key to element.



作者:马克社区何老师