学习marionette_driver package (三)
class: marionette_driver.marionette.Actions(marionette) 方法:
perform(actions=None)
actions:输入源动作序列列表。 可以在以下帮助下创建单个动作序列ActionSequence.dict
release()释放方法
sequence(*args, **kwargs) 返回指定类型的空 ActionSequence。 有关参数列表,请参阅 ActionSequence ----------------------------------------------------------------------- class:用于与警报交互的类 marionette_driver.marionette.Alert(marionette) 方法:
accept() 接受当前显示的模态对话框
dismiss() 关闭当前显示的模态对话框
send_keys(*string)
在打开的选项卡模式对话框中将键发送到当前显示的文本输入区域。
property text----属性文本
在选项卡模式中返回当前显示的文本。
------------------------------------------------------------------------- class:代表一个 DOM 元素 marionette_driver.marionette.HTMLElement(marionette, id, kind='element-6066-11e4-a52e-4f735466cecf') 方法:
clear()
清除元素的输入。 click()
模拟点击元素。
find_element(method, target)
返回一个与指定方法和目标相匹配的 HTMLElement 实例,相对于当前元素。
get_attribute(name)
返回请求的属性,如果没有设置属性,则返回 None。
get_property(name) 返回请求的属性,如果未设置属性,则返回“无”。
标识符:
identifiers = ('chromeelement-9fc5-4b51-a3c8-01716eedeb04', 'frame-075b-4da1-b6ba-e579c2d3230a', 'window-fcc6-11e5-b4f8-330a88ab9d7f', 'element-6066-11e4-a52e-4f735466cecf') is_displayed()
如果显示元素,则返回 True,否则返回 False。 is_enabled()
如果满足以下所有条件,此命令将返回 False,否则返回 True:
(1)表单控件被禁用。
(2)HTMLElement 具有禁用的布尔属性。 is_selected()
如果元素被选中,则返回 True。
property srect:
属性矩形 获取元素的边界矩形。 这将返回一个包含以下内容的字典:
x 和 y 表示 HTMLElement 相对于文档左上角的左上角坐标。
height 和 width 将包含 HTMLElement 的 DOMRect 的高度和宽度。
send_keys(*strings):
通过合成按键将字符串发送到元素。
如果一个数组像 marionette.send_keys(Keys.SHIFT, “a”) 一样传入,它将被连接成一个字符串。
如果像 marionette.send_keys(1234) 一样传入整数,它将被强制转换为字符串。
property tag_name:
元素的标签名称。
tap(x=None, y=None)
x:点击事件的x坐标。如果没有给出,默认为元素的中心。
y:点击事件的y坐标。如果没有给出,默认为元素的中心。
模拟元素上的一组点击事件。
属性 text:返回元素及其子元素的可见文本。
value_of_css_property(property_name)
property_name:要获取其值的属性名称
获取指定 CSS 属性名称的值。
------------------------------------------------------------------------- class: marionette_driver.marionette.Marionette(host='127.0.0.1', port=2828, app=None, bin=None, baseurl=None, socket_timeout=None, startup_timeout=None, **instance_args) 意义:表示与浏览器或设备的 Marionette 连接。
属性值:
- CONTEXT_CHROME = 'chrome'
- CONTEXT_CONTENT = 'content'
- DEFAULT_SHUTDOWN_TIMEOUT = 70
- DEFAULT_SOCKET_TIMEOUT = 360
- DEFAULT_STARTUP_TIMEOUT = 120
- absolute_url(relative_url)
- 返回从 Marionette 的 www 目录提供的文件的绝对 url。
- relative_url: 静态文件的 url,相对于 Marionette 的 www 目录。
方法:
add_cookie(cookie)
意义:将 cookie 添加到您当前的会话
cookie:一个字典对象,带有必需的键——“name”和“value”; 可选键 - “路径”、“域”、“安全”、“到期”。
案例:
driver.add_cookie({"name": "foo", "value": "bar"})
driver.add_cookie({"name": "foo", "value": "bar", "path": "/"})
driver.add_cookie({"name": "foo", "value": "bar", "path": "/",
"secure": True})
check_for_crash()
意义:检查进程是否崩溃。
return: 正确,如果自上次调用该方法后发生崩溃
静态方法:check_port_available(port, host='')
检查“host:port”是否可用。 如果端口不可用,则引发 socket.error。
chrome_window_handles
获取当前打开的 chrome 窗口列表。每个窗口句柄由服务器分配,返回的字符串列表没有保证的顺序。
return: 作为字符串的唯一 chrome 窗口句柄的无序列表
cleanup()--清理
clear_pref(pref):
从指定的首选项中清除用户定义的值。
pref:首选项的名称。
close()
关闭当前窗口,如果它是当前打开的最后一个窗口,则结束会话。
return: 作为字符串的剩余唯一窗口句柄的无序列表
close_chrome_window()
关闭当前选择的 chrome 窗口,如果它是最后一个打开的窗口,则结束会话
return: 作为字符串的剩余唯一 chrome 窗口句柄的无序列表
static方法 convert_keys(*string):
转换密钥
property current_chrome_window_handle:
获取当前镀铬窗口的句柄。
对应于一个 chrome 窗口,它本身可能包含由 window_handles 标识的选项卡。
向此窗口返回一个不透明的服务器分配的标识符,该标识符在此 Marionette 实例中唯一标识它。 这可用于稍后切换到此窗口。
returntype: String
Returns: 独特的窗口
property current_window_handle:
获取当前窗口的句柄。
向此窗口返回一个不透明的服务器分配的标识符,该标识符在此 Marionette 实例中唯一标识它。
这可用于稍后切换到此窗口。
returns: 独特的窗把手
return type: String
delete_all_cookies():
删除当前会话范围内的所有 cookie。
示例:
driver.delete_all_cookies()
delete_cookie(name):
删除指定name的cookies
示例:
driver.delete_cookie("foo")
delete_session(send_request=True)
关闭当前会话并断开与服务器的连接。
参数 send_request – 可选,如果为 True,将发送关闭服务器端会话的请求。
在情况下使用 False。 in_app restart() 或 quit(),它们自己触发删除。 默认为真。
-------------------------------------------------------------------------
enforce_gecko_prefs(prefs)
检查正在运行的实例是否具有给定的首选项。
如果没有,它将终止当前正在运行的实例,并使用请求的首选项生成一个新实例。
参数 prefs --> 一个字典,其键是首选项名称。
----------------------------------------------------------------------------
execute_async_script(script, script_args=(), new_sandbox=True, sandbox='default', script_timeout=None)
执行异步 JavaScript 脚本,并返回结果(如果脚本确实返回值,则返回 None)。
脚本在由最近的 set_context() 调用设置的上下文中执行,或者如果 set_context() 没有被调用到 CONTEXT_CONTENT上下文中。
解析:
script:包含要执行的 JavaScript 的字符串。
script_args: 传递给脚本的可交互参数。
new_sandbox:如果为 False,则保留上次 execute_*script 调用中的全局变量。
默认情况下为 True,在这种情况下不保留全局变量。
sandbox:引用您要使用的沙箱的标签;如果您指定一个新标签,将创建一个新沙箱。
如果您使用特殊标签系统,将使用具有提升权限的系统主体创建沙箱。
script_timeout:超时以毫秒为单位,覆盖会话的默认脚本超时。
样例:
marionette.timeout.script = 10
result = self.marionette.execute_async_script('''
// this script waits 5 seconds, and then returns the number 1
let [resolve] = arguments;
setTimeout(function() {
resolve(1);
}, 5000);
''')
assert result == 1
---------------------------------------------------------------------------
execute_script(script, script_args=(), new_sandbox=True, sandbox='default', script_timeout=None)
解释:
执行同步 JavaScript 脚本,并返回结果(如果脚本确实返回值,则返回 None)。
该脚本在由最近的 set_context() 调用设置的上下文中执行,
或者如果 set_context() 尚未调用,
则在 CONTEXT_CONTENT 上下文中执行。
参数:
script:包含要执行的 JavaScript 的字符串。
script_args: 传递给脚本的可交互参数。
new_sandbox:如果为 False,则保留上次 execute_*script 调用中的全局变量。默认情况下为 True,在这种情况下不保留全局变量。
sandbox:引用您要使用的沙箱的标签; 如果您指定一个新标签,将创建一个新沙箱。 如果您使用特殊标签系统,将使用具有提升权限的系统主体创建沙箱。
script_timeout:超时以毫秒为单位,覆盖会话的默认脚本超时。
简单使用示例:
result = marionette.execute_script("return 1;")
assert result == 1
可以使用 script_args 参数将参数传递给脚本:
result = marionette.execute_script("return arguments[0] + arguments[1];",
script_args=(2, 3,))
assert result == 5
some_element = marionette.find_element(By.ID, "someElement")
sid = marionette.execute_script("return arguments[0].id;", script_args=(some_element,))
assert some_element.get_attribute("id") == sid
希望访问 window 对象的非标准属性的脚本必须使用 window.wrappedJSObject:
result = marionette.execute_script('''
window.wrappedJSObject.test1 = "foo";
window.wrappedJSObject.test2 = "bar";
return window.wrappedJSObject.test1 + window.wrappedJSObject.test2;
''')
assert result == "foobar"
默认情况下,单个脚本设置的全局变量不会在脚本调用之间持续存在。
如果您希望在脚本调用之间保留数据,可以在下次调用时将 new_sandbox 设置为 False,
并将任何新变量添加到新的“全局”对象中,如下所示:
marionette.execute_script("global.test1 = 'foo';")
result = self.marionette.execute_script("return global.test1;", new_sandbox=False)
assert result == "foo"
-----------------------------------------------------------------
find_element(method, target, id=None)
返回与当前上下文中指定的方法和目标匹配的 HTMLElement 实例。
HTMLElement 实例可用于调用元素上的其他方法,例如 click()。
如果没有立即找到元素,将在 marionette_driver.timeout.Timeouts.implicit 设置的时间内重复定位元素的尝试。
如果多个元素符合给定的条件,则只返回第一个。 如果没有元素匹配,将引发 NoSuchElementException。
参数:
method:用于定位元素的方法;
其中之一:“id”、“name”、“class name”、“tag name”、“css selector”、“link text”、“partial link text”和“xpath”。
请注意,chrome DOM 不支持“名称”、“链接文本”和“部分链接测试”方法。
target:搜索的目标。 例如,如果method = “tag”,target 可能等于“div”。
如果method =“id”,目标将是一个元素id。
id:如果指定,则仅在具有指定 id 的元素内搜索元素。
--------------------------------------------------------------------------
find_elements(method, target, id=None):
返回与当前上下文中指定的方法和目标匹配的所有 HTMLElement 实例的列表。
HTMLElement 实例可用于调用元素上的其他方法,例如 click()。
如果没有立即找到元素,将在 marionette_driver.timeout.Timeouts.implicit 设置的时间内重复定位元素的尝试。
参数:
method:用于定位元素的方法;
其中之一:“id”、“name”、“class name”、“tag name”、“css selector”、“link text”、“partial link text”和“xpath”。 请注意,chrome DOM 不支持“名称”、“链接文本”和“部分链接测试”方法。
target:搜索的目标。
例如,如果method = “tag”,target 可能等于“div”。 如果method =“id”,目标将是一个元素id。
id:如果指定,则仅在具有指定 id 的元素内搜索元素。
----------------------------------------------------------------------------
fullscreen():
将用户代理窗口同步设置为全屏,就像用户已经完成“查看 > 进入全屏”一样,或者如果它已经全屏则恢复它。
returns: Window rect
------------------------------------------------
get_active_element()---活动元素
get_cookie(name)
按名称获取单个 cookie。 如果找到则返回 cookie,否则返回 None。
参数:
name:要获取的 cookie 的名称。
-------------------------------------------------
get_cookies():
获取当前域的所有 cookie。
这相当于调用 document.cookie 并解析结果。
return 当前域的 cookie 列表。
get_pref(pref, default_branch=False, value_type='unspecified'):
获取指定首选项的值。
参数:
pref – 首选项的名称。
default_branch – 可选,如果为 True,将从默认分支读取首选项值。 否则返回用户定义的值(如果设置)。默认为假。
value_type – 可选,pref 复杂值的 XPCOM 接口。可能的值为:nsIFile 和 nsIPrefLocalizedString。
示例:
marionette.get_pref("browser.tabs.warnOnClose")
get_url():
意义:
获取表示当前 URL 的字符串。
在桌面上,这将返回当前顶级浏览上下文的 URL 的字符串表示形式。
这相当于 document.location.href。 在 chrome 的上下文中,这将返回当前资源的规范 URL。
Return:表示URL 的字符串
- get_window_type():
- 获取 Marionette 当前正在操作的窗口的 windowtype 属性。
- 此命令仅在 chrome 上下文中有意义。
- 您可以使用此方法来区分浏览器窗口和编辑器窗口。
- go_back()
- 使浏览器执行后退导航。
- go_forward():
- 使浏览器执行向前导航。
maximize_window():
调整当前接收命令的浏览器窗口的大小。
该操作应等同于用户按下操作系统窗口中的最大化按钮。
请注意,此命令在 Fennec 上不可用。
它也可能在某些窗口管理器中不可用。
return: window rect
navigate(url):
导航到给定的网址。
将当前顶级浏览上下文的内容框架导航到给定的 URL,并在返回之前等待文档加载或会话的页面超时持续时间过去。
如果加载文档时出错或 URL 被阻止,该命令将返回失败。
如果无法访问主机、URL 格式错误、页面受限(关于:*pages),或者如果存在证书问题以命名一些示例,则可能会发生这种情况。
当与窗口关联的框架元素上的 DOMContentLoaded 事件触发并且 document.readyState 为“完成”时,文档被认为已成功加载。
在 chrome 上下文中,它会将当前窗口的位置更改为提供的 URL,并等待 document.readyState 等于“完成”或页面超时持续时间已过。
参数:
url---要导航到的 URL。
open(type=None,focus=false,private = False)
根据指定的上下文类型打开一个新窗口或选项卡。
如果没有给出上下文类型,应用程序将根据选项卡和窗口支持选择最佳选项。
参数:
type - 要打开的窗口类型。可以是“选项卡”或“窗口”之一
focus - 如果为 true,则打开的窗口将被聚焦
private - 如果为真,打开一个私人窗口
return: 带有新窗口句柄和打开窗口类型的字典
quit(clean=False,in_app = False,callback=None)
终止当前运行的实例。
此命令将删除活动的marrionette会话。
它还允许操作:
应用程序未运行时的配置文件数据。
要再次启动应用程序,必须调用 start_session()。
参数:
clean – 如果为 False,则在下次启动应用程序后将使用相同的配置文件。 请注意,应用程序内启动的重启始终保持相同的配置文件。
in_app – 如果为 True,牵线木偶将导致从浏览器中退出。否则浏览器将通过终止进程立即退出。
callback – 如果提供并且 in_app 为 True,则回调将用于触发关闭。
return 包含应用程序关闭详细信息的字典。 cause 属性反映了原因,而forced 表示某些东西阻止了关闭,应用程序必须被强制关闭。
raise_for_port(timeout=None, check_process_status=True):
如果无法建立连接,则提高 socket.timeout。
参数:
timeout - 服务器准备就绪的可选超时时间(以秒为单位)。
check_process_status – 可选,如果为 True,将持续检查进程是否已退出,并中止连接尝试。
refresh():
使浏览器执行刷新当前页面。
restart(clean = false,in_app=false,callback=None)
这将终止当前正在运行的实例,并生成一个具有相同配置文件的新实例,然后在再次创建会话时重用会话 ID。
参数:
clean – 如果为 False,则在重新启动后将使用相同的配置文件。请注意,应用程序内启动的重启始终保持相同的配置文件。
in_app – 如果为 True,牵线木偶将导致从浏览器内重新启动。否则浏览器将通过终止进程立即重新启动。
callback – 如果提供并且 in_app 为 True,则回调将用于触发重启。
return: 包含应用程序重新启动详细信息的字典。cause 属性反映了原因,而forced 表示某些东西阻止了关闭,应用程序必须被强制关闭。
save_screenshot(fh, element=None, full=True, scroll=True):
获取网页元素或当前帧的屏幕截图并将其保存在文件句柄中。
它是 screenshot() 的包装器:param fh: 保存屏幕截图的文件句柄。
其余参数的定义类似于 screenshot().
screenshot(element=None,format='base64',full=Ture,scroll=True)
截取网页元素或当前帧的屏幕截图。
默认情况下,屏幕捕获以无损 PNG 图像的形式返回,编码为 base 64 字符串。
如果定义了元素参数,则捕获区域将限于该元素的边界框。
否则,捕获区域将是当前帧的边界框。
参数:
element – 要截取屏幕截图的元素。如果没有,将截取当前帧的屏幕截图。
format - 如果为“base64”(默认值),则将屏幕截图作为 base64 字符串返回。
如果是“二进制”,则数据被解码并作为原始二进制返回。 如果是“hash”,则使用 SHA-256 算法对数据进行散列,结果以十六进制摘要形式返回。
full – 如果为 True(默认值),则捕获区域将是完整的帧。 否则只捕获视口。 仅在元素为 None 时适用。
scroll – 提供元素时,在截屏之前滚动到它(默认)。 否则,避免将元素滚动到视图中。
set_context(context)
设置运行 Marionette 命令的上下文。
参数:
context——上下文,可能是类属性 CONTEXT_CHROME 或 CONTEXT_CONTENT 之一。
示例:
marionette.set_context(marionette.CONTEXT_CHROME)
set_orientation(orientation)
设置当前浏览器方向。提供的方向应作为有效方向值之一给出。如果方向未知,则会引发错误。
有效的方向是“portrait”和“landscape”,它们分别回退到“portrait-primary”和“landscape-primary”,以及“portrait-secondary”和“landscape-secondary”。
参数:
orientetion - 锁定屏幕的方向。
set_pref(pref,value,default_branch = False)
设置指定首选项的值。
参数:
pref – 首选项的名称。
value – 要设置首选项的值。 如果值为 None,则将首选项重置为其默认值。 如果不存在默认值,则首选项将不复存在。
default_branch – 可选,如果为 True,则首选项值将写入默认分支,并保持到应用程序重新启动。 否则设置用户定义的值。 默认为假。
示例:
marionette.set_pref("browser.tabs.warnOnClose", True)
set_prefs(prefs,default_banch=False)
设置首选项列表的值。
参数:
prefs – 包含一个或多个首选项及其要设置的值的字典。有关更多信息,请参阅 set_pref()。
default_branch – 可选,如果为 True,则首选项值将写入默认分支,并保持到应用程序重新启动。否则设置用户定义的值。 默认为假。
示例:切换到指定窗口; 后续命令将指向新窗口。
marionette.set_prefs({"browser.tabs.warnOnClose": True})
set_window_rect(x=None,y=None,height=None,width=None)
设置当前窗口的位置和大小。
提供的宽度和高度值是指窗口的外层宽度和外层高度值,包括滚动条、标题栏等。
如果请求的窗口大小会导致窗口处于最大化状态,则会返回错误。
参数:
x – 窗口左上角的 x 坐标
y - 窗口左上角的 y 坐标
width – 调整窗口大小的宽度。
height – 调整窗口大小的高度。
start_binary(timeout)
start_session(capabilities=None, timeout=None)
创建一个新的 WebDriver 会话。
必须在执行任何其他操作之前调用此方法。
参数:
capabilities——一个可选的木偶识别能力字典。
它不接受符合 WebDriver 的功能字典(包括 alwaysMatch、firstMatch、desiredCapabilities 或 requriedCapabilities),并且仅识别特定于 Marionette 的扩展功能。
timeout - 服务器准备就绪的可选超时时间(以秒为单位)。
return 提供的功能的字典。
switch_to_alert()
返回一个 Alert 对象,用于与当前显示的警报进行交互。
示例:
alert = self.marionette.switch_to_alert()
text = alert.text
alert.accept()
switch_to_default_content()
将当前上下文切换到页面的默认内容。
switch_to_frame(frame=None)
将当前上下文切换到指定的帧。如果适用,后续命令将在指定帧的上下文中运行。
参数:
frame-对要切换到的帧的引用。这可以是 HTMLElement 或整数索引。如果不带参数调用 switch_to_frame,它将切换到顶级框架。
switch_to_parent_frame()
切换到父框架
switch_to_window(handle, focus=True)
参数:
handle – 要切换到的窗口的 id。
focus – 一个布尔值,它决定是否聚焦我们刚刚切换到的窗口。
using_context(context)
使用 with 语句设置 Marionette 命令运行的上下文。
服务器上的上下文状态在进入块之前被保存,并在退出块时恢复。
参数:
context——上下文,可能是类属性 CONTEXT_CHROME 或 CONTEXT_CONTENT 之一。
示例:
with marionette.using_context(marionette.CONTEXT_CHROME):
# chrome scope
... do stuff ...
using_prefs(prefs, default_branch=False):
为在 with 块中执行的代码设置首选项,并在退出时恢复它们。
参数:
prefs – 包含一个或多个首选项及其要设置的值的字典。更多信息,请参阅 set_prefs()。
default_branch – 可选,如果为 True,则首选项值将写入默认分支,并保持到应用程序重新启动。 否则设置用户定义的值。 默认为假。
示例:
with marionette.using_prefs({"browser.tabs.warnOnClose": True}):
# ... do stuff ...
# ... do stuff ...
property orientation:
获取当前浏览器方向。
将返回有效的主要方向值之一:portrait-primary、landscape-primary、portrait-secondary 或 Landscape-secondary。
- property window_rect
- property window_handles
- 获取当前上下文中的窗口列表。
- 如果在内容上下文中调用,它将返回对所有可用浏览器窗口的引用列表。
- 每个窗口句柄由服务器分配,返回的字符串列表没有保证的顺序。
- return 作为字符串的唯一窗口句柄的无序列表。
property test_name
property title 活动窗口的当前标题。 property session_capabilities 表示当前会话功能的 JSON 字典。 property page_source DOM的字符串表示。 property profile_path class: marionette_driver.marionette.MouseButton 鼠标按钮常量的类枚举类。
LEFT = 0
MIDDLE = 1
RIGHT = 2 ========================================================================== class: marionette_driver.timeout.Timeouts(marionette)
在 Marionette 会话中管理超时设置。
示例:
marionette = Marionette(...)
marionette.start_session()
marionette.timeout.page_load = 10
marionette.timeout.page_load
# => 10
marionette.start_session()
marionette.timeout.page_load = 10
marionette.timeout.page_load
# => 10
属性implicit:
获取会话的隐式等待超时。
这指定了检索元素时等待隐式元素定位策略的时间。默认情况下它是禁用的(0 秒)。
属性 page_load:
获取会话的页面加载超时。
这指定了等待页面加载完成的时间。 默认为 5 分钟(或 300 秒)。
reset():
将超时重置为其默认值。
属性script:
获取会话的脚本超时。
这指定了在中断它们之前等待注入脚本完成的时间。默认为 30 秒。
marionette_driver.transport模块
class: marionette_driver.transport.Command(msgid, name, params) TYPE = 0 static from_msg(data) to_msg() class:传输消息 marionette_driver.transport.Message(msgid) class:传输响应 marionette_driver.transport.Response(msgid, error, result) TYPE = 1 static from_msg(data) to_msg() class:传输套接字上下文 marionette_driver.transport.SocketContext(host, port, timeout) 通过锁保护对套接字的访问的对象。
必须使用此对象作为上下文管理器来访问套接字; 访问上下文之外的套接字将绕过锁。 class:传输套接字超时 marionette_driver.transport.SocketTimeout(socket_ctx, timeout) class:传输.Tcp传输 marionette_driver.transport.TcpTransport(host, port, socket_timeout=60.0)
通过 TCP 与 Marionette 通信的套接字客户端。
它使用 Gecko 中远程调试器的协议,其中消息总是以消息长度和冒号开头,
例如: 7:Message
在此协议之上,它使用 Marionette 消息格式,该格式根据远程服务器提供的协议级别而有所不同。
支持的协议级别为 min_protocol_level 及以上。
方法:
send(obj)
向远程服务器发送消息。 允许的输入是 Message 实例或 JSON 可序列化对象。
respond(obj)
发送对命令的响应。这可以是任意的 JSON 可序列化对象或异常。
request(name, params)
向远程服务器发送消息并等待响应返回。
receive(unmarshal=True)
等待来自遥控器的下一个完整响应。
数据包格式为带长度前缀的 JSON:
packet = digit+ “:” body digit = “0”-“9” body = JSON text
参数:
unmarshal – 默认是反序列化数据包并返回消息类型。将此设置为 false 将返回原始数据包。
min_protocol_level = 3
max_packet_length = 4096
connect()
连接到服务器并处理我们期望在响应中收到的 hello 消息。返回协议级别和应用程序类型的元组。
close()
关闭插座。首先强制套接字不再发送数据,然后显式关闭它以释放其资源。
property socket_timeout
marionette_driver.wait模块
class: marionette_driver.wait.SystemClock
property now
sleep(duration)
class: marionette_driver.wait.Wait(marionette, timeout=None, interval=None, ignored_exceptions=None, clock=None) 一个显式条件实用程序类,用于等待条件评估为真或不为空。
这将重复评估一个条件,以期待一个真实的返回值,或者它的超时到期,或者它的等待谓词变为真。
Wait 实例定义了等待条件的最长时间,以及检查条件的频率。
此外,用户可以配置等待以在等待时忽略特定类型的异常,例如在页面上搜索元素时的 errors.NoSuchElementException
方法:
until(condition, is_true=None, message='') 意义:
重复运行条件,直到其返回值计算为真,或者其超时到期或谓词计算为真。
这将按给定的时间间隔进行轮询,直到达到给定的超时,或者谓词或条件返回 true。
返回 null 或计算结果不为 true 的条件将在引发 errors.TimeoutException 之前完全超时。
如果在条件函数中引发了异常并且没有被忽略,则该函数将立即引发。
如果忽略异常,它将继续轮询条件,直到成功返回或引发 TimeoutException。
参数:
condition:
一个可调用函数,如果它的计算结果为真,则该函数将返回其返回值。
is_true:
一个可选谓词,当它评估为 False 时将终止并返回。 它应该是一个将传递时钟和结束时间的函数。
默认谓词将在时钟超时后终止等待。
message:
如果此函数超时,将包含在异常消息中的可选消息。
class: marionette_driver.wait.until_pred(clock, end)
浙公网安备 33010602011771号