为啥这个 javascript 命令不执行?

Posted

技术标签:

【中文标题】为啥这个 javascript 命令不执行?【英文标题】:Why doesn't this javascript command execute?为什么这个 javascript 命令不执行? 【发布时间】:2021-10-17 18:49:04 【问题描述】:
webview.Eval("var list = document.getElementsByClassName('some button class')[0].click();");
        webview.Eval("document.getElementById('savebutton').click();");

从第一条指令开始,程序进入一个有保存按钮的页面,然后第二行是点击保存按钮。

当我按下按钮时,整个代码应该运行,但我的问题是当我按下按钮时,只执行第一条指令。如果我再次按下按钮,后半部分也会执行。

有人知道该怎么做吗?提前感谢您的帮助!

【问题讨论】:

尝试将第二行的js代码放在第一行的;之后,像这样webview.Eval("var list = document.getElementsByClassName('some button class')[0].click(); document.getElementById('savebutton').click();"); 如果这不起作用,您可能在 Id 中有拼写错误,或者它应该是 Class 而不是 Id。 @ChristophEckinger 感谢您的快速回复。我都试过了,但还是不行。 不客气。你能在这里评论你想访问的链接吗?我去看看 并确保你给我类的实际名称(第 1 行)和 Id(第 2 行) 【参考方案1】:

已解决:我使用Device.StartTimer()方法延迟了第二行的执行。

TimeSpan delay = new TimeSpan(0, 0, 3);
Device.StartTimer(delay, DelayHandler);
webview.Eval("var list = document.getElementsByClassName('some button class')[0].click();");


bool DelayHandler()

 webview.Eval("document.getElementById('savebutton').click();");
 return false;

【讨论】:

以上是关于为啥这个 javascript 命令不执行?的主要内容,如果未能解决你的问题,请参考以下文章

Javascript中..为啥IE执行addEventListener()会出错??

为啥这个 PL/SQL 查询不使用 ODP.NET 执行

为啥弄不到jav的力量

为啥弄不到jav的力量

OleDbCommand 不能执行这个命令,为啥?

为啥浏览器在执行 JavaScript 之前并不总是完成对前面 HTML 的渲染?