excel - Selenium VBA 服务员类错误 400 ArgumentError
问题描述
我试图通过使用服务员类来评估是否显示或启用了元素,从而使我的 selenium 代码更高效。不幸的是,我的第一次尝试使用元素 IsDisplayed 属性没有成功。
objDriver 和 objWait 设置在全局级别。我正在使用 Office 2016 VBA,x64
Public Function ElementIsVisible(ByVal strXpath As String) As Boolean
Set objWait = New Selenium.Waiter
ElementIsVisible = False
If objWait.Until(Function:=AddressOf CkElementVisible, argument:=strXpath, timeout:=10000, timeoutMessage:="Element Not Visible") Then
ElementIsVisible = True
End If
Set objWait = Nothing
End Function
Function CkElementVisible(ByVal strXpath As String) As Boolean
CkElementVisible = False
With objDriver
If .FindElementByXPath(XPath:=strXpath, timeout:=10000).IsDisplayed Then
CkElementVisible = True
End If
End With
End Function
如果使用(例如)调用此函数
strXP = "//input[contains(@data-id,'emailInput')]"
If ElementIsVisible(strXP) Then
'Do stuff
End if
它显示错误 400 ArgumentError,位置 0 处的参数无效。需要一个函数。
发生这种情况的代码
If objWait.Until(Function:=AddressOf CkElementVisible, argument:=strXpath, timeout:=10000, timeoutMessage:="Element Not Visible") Then
根据文档,这应该是使用 Waiter 类的正确语法。有谁知道如何让这个功能工作?
艺术。
解决方案
我假设您正在寻找的任何 HTML 标记都具有属性 @Style 可见性是“隐藏的”。请检查下面提到的标签
("#myid").attr("style", "visibility: hidden")
如果是,那么您需要包含一些操作以使其可见。
推荐阅读
- htmlpurifier - HTML净化器弄乱了桌子
- .net - 如何从 C++/CX 访问 .Net 类?
- javascript - 远程js文件从目录而不是子目录工作?
- java - 特定端点的多种安全配置
- android - 如何将 URI 方案添加到 Android TWA
- r - r 中的 optim 函数返回带有错误消息的列表
- javascript - history.replaceState 是在搜索字符串更新后同步更改到 URL 的正确工具吗
- node.js - MongoDB Node Express GET 和 DELETE 工作,而不是 POST?
- python - Tkinter 按钮直到循环结束才显示
- javascript - 当 innerhtml 本身已经动态生成时,如何绑定到 html 属性?