Javascript 链接在 selenium excel vba 中没有响应

2024-05-06

我正在尝试做这样一行点击 javascript 链接的操作

.FindElementById("ctl00_ContentPlaceHolder1_LinkButton4").WaitDisplayed(True, 3000).Click

这条线没有任何错误,但有时它不起作用..我说有时并不总是..有时工作,有时停止,我不知道原因 我必须重新启动代码才能启动新的机器人(驱动程序),在某些情况下我必须重新启动很多次,直到此链接起作用

这是这个 javascript 链接的 html 部分

<a id="ctl00_ContentPlaceHolder1_LinkButton4" href="javascript:__doPostBack('ctl00$ContentPlaceHolder1$LinkButton4','')" style="display:inline-block;width:280px;text-decoration:none;height:22px;font-weight:bold;font-size:11pt;color:Maroon;border-width:1px;border-style:Dashed;border-color:#404040;background-color:#FFFFC0;vertical-align: middle; text-align: center; cursor: hand;">Some Text Removed For Privacy</a>

我怎样才能使这个链接工作......或者是否有解决方法使它工作..? 我试图解决这个问题,但我根本没有找到任何线索

这是响应式的 html 部分(我没有看到任何区别)

<a id="ctl00_ContentPlaceHolder1_LinkButton4" href="javascript:__doPostBack('ctl00$ContentPlaceHolder1$LinkButton4','')" style="display:inline-block;width:280px;text-decoration:none;height:22px;font-weight:bold;font-size:11pt;color:Maroon;border-width:1px;border-style:Dashed;border-color:#404040;background-color:#FFFFC0;vertical-align: middle; text-align: center; cursor: hand;">Some Text Removed For Privacy/a>

这是执行此行后的错误快照

.ExecuteScript "javascript:__doPostBack('ctl00$ContentPlaceHolder1$LinkButton4'"

This is Network snapshot (may be useful) >> I see 302 (which I think there should be newer cache ..) so is there a way to clear the cache of the bot? enter image description here


尝试在顶部执行以下操作

 Const JS_WAIT_CLICKABLE = _
    "var target = this, endtime = Date.now() + arguments[0];" & _
    "(function check_clickable() {" & _
    "  var r = target.getBoundingClientRect(), x = r.left+r.width/2, y = r.top+r.height/2;" & _
    "  for (var e = document.elementFromPoint(x , y); e; e = e.parentElement)" & _
    "    if (e === target){ callback(target); return; }" & _
    "  if (Date.now() > endtime) { callback(target); return; }" & _
    "  setTimeout(check_clickable, 60);" & _
    "})();"                                      'by @florentbr

Then

With .FindElementById("ctl00_ContentPlaceHolder1_LinkButton4")
    .ExecuteAsyncScript(JS_WAIT_CLICKABLE, 10000) _
    .Click
End With

您也可以尝试直接执行

.ExecuteScript "javascript:__doPostBack('ctl00$ContentPlaceHolder1$LinkButton4','');"

清除缓存并返回(因为按钮位于影子根目录中,您需要使用/deep/组合器)

d.get "chrome://settings/clearBrowserData"
Dim button As Object
d.FindElementByCss("* /deep/ #clearBrowsingDataConfirm").Click
Set button = d.FindElementByCss("* /deep/ #clearBrowsingDataConfirm")

Const MAX_WAIT_SEC As Long = 15
Dim t As Date
t = Timer
Do
    DoEvents
    If Timer - t > MAX_WAIT_SEC Then Exit Do
Loop Until button Is Nothing

d.ExecuteScript "window.history.go(-2);"

或者潜在地,

d.GoBack
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Javascript 链接在 selenium excel vba 中没有响应 的相关文章

随机推荐

  • 如何使用 RSpec & Rails 4 测试子域约束

    我正在尝试编写一个测试子域约束的 控制器测试 但是 我无法让 RSpec 设置子域 并且如果子域不准确则返回错误 我正在使用 Rails 4 2 6 和 RSpec 3 4 路线 rb namespace frontend api do c
  • Spring实体应该在服务中转换为Dto吗?

    对此发表评论后question https stackoverflow com questions 34058238 spring service and repository layer convention 34066805 nored
  • 在 Emacs Paredit 中交换括号和方括号

    如何在 paredit 模式下定义交换括号和方括号的命令 所以任务就是把它变成这样 例如 blah a b c 进入这个 blah a b c 使用 paredit 模式 移至表达式的开头 a 进而 C M SPC
  • 在 bootstrap 4 中将页脚刷新到页面底部

    我正在使用引导程序4 我的模板结构是这样的 div div div div
  • TensorRT 多线程

    我正在尝试使用 python API 来使用 TensorRt 我试图在多个线程中使用它 其中 Cuda 上下文与所有线程一起使用 在单个线程中一切正常 我使用 docker 和 tensorrt 20 06 py3 图像 onnx 模型和
  • Ruby 中@@ 和@ 有什么区别? [复制]

    这个问题在这里已经有答案了 我刚刚开始学习 Ruby 一直无法找到关于 和 在类变量方面的区别的很好的解释 如果有人可以提供一个基本的直观示例 那就太好了 另外它们可以互换吗 前缀为的变量 是一个类变量 前缀为 是一个实例变量 在这个答案中
  • 使用护照库访问 Microsoft Graph API 时,CompactToken 解析失败,错误代码:80049217

    我在用 passport azure ad oauth2 npm 模块 以获取访问令牌 然后我可以将其传递给 MS Graph API passport use new AzureAdOAuth2Strategy clientID proc
  • 如何在模块中使用“before_action”

    我想在模块中使用 before action 不幸的是 我无法让它发挥作用 我正在谷歌搜索 但我发现的一切都无法解决问题 我的模块文件如下所示 module ShowController include SimpleController b
  • 在 Elastic 搜索中加载示例数据集时出错

    您好 我正在尝试加载示例数据集参考弹性搜索文档 https www elastic co guide en elasticsearch reference current exploring your data html但是当我尝试运行指示
  • 如何正确实现TBitmap的扫描线访问?

    我正在尝试根据以下方式访问位图的扫描线关于内河码头的文章 http edn embarcadero com article 29173 使用像这样的扫描线 for y 0 to n do begin line bitmap scanline
  • 不使用 Web 服务器编写简单的 Microsoft 图形客户端

    我正在寻找编写一个脚本来更新 Office365 中的通讯组列表 我正在学习 MS Graph API 并且已经让 python REST 示例可以工作 看来所有示例 Graph API 代码 无论语言或平台如何 都假设我正在以一种或另一种
  • 如何将 Tesseract 导入 Angular2 (TypeScript)

    我正在尝试将 Tesseract 导入 Angular2 TypeScript 我可以看到它保存到 node modules 文件夹中 但是在使用时 import Tesseract from types tesseract js it s
  • MassTransit AzureServiceBus 生成的队列

    我有一个托管在 Azure Service Fabric 解决方案中的 MT 设置的工作配置 我有一个发送消息的 API 和一个读取消息的无状态应用程序 在无状态应用程序中 我告诉它使用类型的消息TestMessage具有以下内容 cont
  • Facebook 自定义消息共享

    当我点击网站上的 Facebook 分享按钮时 我需要添加自定义消息 默认情况下 文本显示 对此说些什么 当我点击 Facebook 分享按钮时 我想将此消息更改为自定义消息 有没有办法用 sharer php 做到这一点 就像参数 t c
  • 按两个字段对 Python 列表进行排序 [重复]

    这个问题在这里已经有答案了 我从排序的 csv 创建了以下列表 list1 sorted csv1 key operator itemgetter 1 我实际上想按两个标准对列表进行排序 首先按字段 1 中的值 然后按字段 2 中的值 我该
  • 在 CASE 语句中使用 CAST 时出现数据转换错误

    运行以下命令时出现错误 将数据类型 nvarchar 转换为 float 时出错 declare completeCommand nvarchar max x paramVal nvarchar 100 paramName nvarchar
  • C# 数据类型到 SQL Server 数据类型

    如何将 C 数据类型 转换 为 SQL Server 数据类型 SqlDbType是已知的 i e C gt String SQL Server gt N String 尝试这个 它是一个 Extension 类 因此您要在文件上添加以下方
  • 适合从记录中提取 OneToMany 关系的约束编程

    也许有人可以帮助我解决 Prolog 或任何约束编程语言的问题 想象一个项目表 学生与母亲一起做某事的学校项目 每个项目都有一名或多名儿童参与 对于每个孩子 我们存储其姓名及其母亲的姓名 但对于每个项目 只有一个包含所有母亲的单元和一个包含
  • 在 Shapely 中向现有多边形添加新点

    如何修改现有的多边形 首先 我想在其外部添加一个点 poly Polygon 0 0 1 1 1 0 我一直在寻找这样的东西 poly append at idx 3 Point 1 1 但我找不到任何类似的方法来做到这一点 添加或删除点是
  • Javascript 链接在 selenium excel vba 中没有响应

    我正在尝试做这样一行点击 javascript 链接的操作 FindElementById ctl00 ContentPlaceHolder1 LinkButton4 WaitDisplayed True 3000 Click 这条线没有任