【问题标题】: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 行)

标签: javascript c# xamarin.forms webview


【解决方案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;
}

【讨论】: