在 Python 中对正则表达式执行 WebDriverWait() 或类似检查

2023-12-02

我希望能够执行类似于WebDriverWait(), i.e:

WebDriverWait(driver, 60).until(
    expected_conditions.text_to_be_present_in_element((By.XPATH, "//tr[5]/td[11]/div"), "1.000000")
)

...对于正则表达式,它在失败之前等待指定的时间。我知道我可以做一些事情,比如……

assert re.search(r"[0,1]{1}.[0-9]{6}", driver.find_element_by_xpath("//tr[5]/td[11]/div").text)

...或者我可以替换search with match在上面的例子中。此方法的问题是,如果对象.. (1) 尚未加载或.. (2) 仍在更改为预期内容的过程中,它将失败。我可以做类似的事情...

for x in range (1,60):
    try:
        assert re.search(r"[0,1]{1}.[0-9]{6}", driver.find_element_by_xpath("//tr[5]/td[11]/div").text)
    except AssertionError:
        if x < 60:
            time.sleep(1)
        else:
            raise AssertionError

...它每秒检查 60 秒,看看是否assert语句已评估为 true。这可以适合模块或类。我想知道是否有一个更优雅的解决方案,在 Python 中用于 Selenium WebDriver,来处理我不知道的这个问题。


如果你调查什么是“预期条件”,你会发现很容易定制一个:

import re

from selenium.webdriver.support.expected_conditions import _find_element


class text_match(object):
    def __init__(self, locator, regexp):
        self.locator = locator
        self.regexp = regexp

    def __call__(self, driver):
        element_text = _find_element(driver, self.locator).text
        return re.search(self.regexp, element_text)

Usage:

WebDriverWait(driver, 60).until(
    text_match((By.XPATH, "//tr[5]/td[11]/div"), r"[0,1]{1}.[0-9]{6}")
)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Python 中对正则表达式执行 WebDriverWait() 或类似检查 的相关文章

随机推荐

  • 使用 JS 循环遍历映射列表以过滤映射键值

    如何使用JS循环遍历地图列表以从下面具有记录地图的列表中过滤出SearchMap键值 Map var searchMap new Map searchMap set ed mood strong searchMap set ed targe
  • 如何重新安装 cpan-autobundle

    我目前正在处理备份 而不是备份整个磁盘 对我来说 备份系统配置会更有效 因此 对于 perl 部分的内容 我希望有一种方法来列出已安装的模块 并在需要时重新安装这些模块 I read 如何获取已安装的 CPAN 模块的列表 关于如何获取列表
  • 如何使用Sceneform、ARCore绘制多边形?

    假设我有来自 ArFragment 命中结果的三个锚点 锚点anchor hitResult createAnchor 如何使用 Sceneform 绘制三角形并应用自定义纹理 第一步是创建一个列表AnchorNodes 能够获取坐标Anc
  • 无尖点且无自交的 Catmull-rom 曲线

    我有以下代码来计算四个控制点之间的点以生成 catmull rom 曲线 CGPoint interpolatedPosition CGPoint p0 CGPoint p1 CGPoint p2 CGPoint p3 float t fl
  • swift 2 中引入的可选模式有哪些优点/用例?

    对于像这样的简单情况if let or guard没看出优点啊 if case let x someOptional where I don t see the advantage over the original if let if l
  • 读取嵌入的 XML 文件 C#

    如何读取嵌入的 XML 文件 属于 C 项目一部分的 XML 文件 我已将 XML 文件添加到我的项目中 并且我想从中读取内容 我希望 XML 文件与项目一起编译 因为我不希望它将成为用户可以看到的资源 任何想法 确保 XML 文件是 cs
  • Python,安装 clarifai --> VS14.0 link.exe 失败,退出状态 1158

    我已经全新安装了 Python 3 6 Selenium 现在想要安装 Clarifai 2 0 21 以下命令失败 python m pip install clarifai 2 0 21 起初它要求 VC 14 0 但我有 14 1 使
  • 根据每个数组中的单个值对 PHP 数组元素进行分组 [重复]

    这个问题在这里已经有答案了 我目前有一个数组 如下所示 Array 0 gt Array id gt 1 name gt Test 1 age gt 42 another id gt 5 1 gt Array id gt 2 name gt
  • BindingResult 和普通目标对象都不是...异常

    是的 我读到这是一个很常见的问题 但阅读这些帖子并没有真正帮助我 The 短篇故事我想在 showAllComments jsp 上提交表单
  • Firefox 11 和 GeoLocation 拒绝回调

    Firefox 10 x 一切正常 但升级到 Firefox 11 后出现了问题 I use navigator geolocation getCurrentPosition success failure 但在 FF11 中 当用户通过选
  • 我的用于解决 3 壶水难题的序言程序有什么问题?

    任何人都可以找到为什么我在这段代码中无法通过 go 得到任何真正的答案吗 例如 我写go 7 3 l 我认为它应该将 3 升水转移到第二个水罐中 但根据序言 这是错误的 怎么了 dynamic go 3 dynamic cur state
  • 为什么在 C++ 中字符串文字中的反斜杠必须转义?

    我想为两种语言声明相同的正则表达式模式 对于TCL我这样做 set pattern d s S 但对于 C 我必须对相同的模式执行此操作 boost regex pattern d s S 否则 C 编译器会告诉我们以下信息 warning
  • 如何加载 JAR 外部但相对于 JAR 的文件?

    我需要加载 JAR 之外的文件 但相对于它 lib config config ini准确地说 我使用了那个确切的路径 只要工作目录是 JAR 所在的位置 它就可以正常工作 即 path to jar java jar JAR jar 如果
  • Pandas - 根据多列进行分组并在组内排名

    我有一个像这样的数据框 df pd DataFrame asset id 10 10 10 20 20 20 method id p2 p3 p4 p3 p1 p2 method rank 5 2 2 2 5 1 conf score 0
  • zbar sdk 无法通过使用相机模拟器在 iPhone 模拟器上工作

    我的项目必须支持条形码扫描 我正在使用 zbar sdk 我已经集成了代码并使用 iphone 模拟器运行 我正在使用相机模拟器扫描条形码 它正确打开条形码图像 但条形码扫描不起作用 有人用过这个吗 您可以在iPhone模拟器上测试条形码
  • 如何在Java Restlet中访问请求的标头值?

    我正在使用开发网络服务Restlet Java 为此 我想保护一些网络服务免受未经授权的客户端的侵害 所以我写了Filter类 在那个 Filter 类中我想得到headers请求的 但我收到以下错误 java lang ClassCast
  • 为什么我无法使用单个点访问整数的属性?

    如果我尝试写 3 toFixed 5 存在语法错误 使用双点 插入空格 将三个点放在括号中或使用方括号表示法可以使其正常工作 3 toFixed 5 3 toFixed 5 3 toFixed 5 3 toFixed 5 为什么单点表示法不
  • 如何在 SQL 中抑制或隐藏重复值?

    我已经四处寻找了一下 但还没有找到如何做到这一点 尽管已经找到了很多关于分析其性能的信息 我想执行一个选择 它返回几列数据 然后还返回另一个表中相关行的嵌套表 实际上是同一个表本身连接 但我 认为 这是不相关的 所以数据是这样的 id na
  • WPF 和初始焦点

    似乎当 WPF 应用程序启动时 没有任何东西具有焦点 这实在是太奇怪了 我使用过的所有其他框架都符合您的预期 将初始焦点放在 Tab 键顺序中的第一个控件上 但我已经确认它是 WPF 而不仅仅是我的应用程序 如果我创建一个新窗口 然后在其中
  • 在 Python 中对正则表达式执行 WebDriverWait() 或类似检查

    我希望能够执行类似于WebDriverWait i e WebDriverWait driver 60 until expected conditions text to be present in element By XPATH tr