gpt4 book ai didi

python - 机器人框架扩展 Selenium 来处理加载元素

转载 作者:行者123 更新时间:2023-12-01 09:19:08 25 4
gpt4 key购买 nike

我正在使用 Robot Framework 进行测试自动化,并且想知道是否有办法扩展 Selenium Webdriver 以普遍处理加载元素。作为引用,当我说加载元素时,我指的是自定义 Angular 元素。

我知道我可以执行等待元素不可见,但我真正想做的是在 Selenium Webdriver 上创建一个常量监听器,以便在该加载元素可见时停止。我不想经常使用机器人关键字来检查元素是否可见,并被迫实现任意 sleep 。

如果我的问题仍然不清楚,下面是我正在考虑的一些伪代码/psuedoflow。我假设 Selenium 是单线程的,否则这个想法将是徒劳的。

Selenium Webdriver:
AddListener(new LoadingListener)

LoadingListener
While ( LoadingElement is Visible)
Sleep 1s

请回复任何反馈。如果这不可能,请告诉我,如果您有任何想法也请告诉我。

最佳答案

我从未这样做过,但您也许可以使用监听器接口(interface)在每个关键字之前或之后调用函数。例如,监听器可能看起来像这样(未经测试):

from robot.libraries.BuiltIn import BuiltIn

xpath = //*[@id='loading_element']

class CustomListener(object):
ROBOT_LISTENER_API_VERSION = 2

def start_keyword(self, name, attrs):
selib = BuiltIn().get_library_instance("SeleniumLibrary")
selib.wait_until_element_is_not_visible(xpath)

如果当前页面上不存在该元素,这可能会引发异常,并且您还需要添加代码来处理在浏览器打开之前运行关键字的情况,但希望它给出了总体思路。

有关监听器接口(interface)的更多信息,请参阅标题为 Listener Interface 的部分。在 Robot Framework User Guide

关于python - 机器人框架扩展 Selenium 来处理加载元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50950973/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com