为啥这个 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 命令不执行?的主要内容,如果未能解决你的问题,请参考以下文章