Javascript ExecuteScript方法未返回,导致测试挂起
我正在单击一个元素,单击的按钮将打开另一个窗口。不幸的是,经过一段时间后,什么也没有发生,脚本因HTTP超时错误而挂起Javascript ExecuteScript方法未返回,导致测试挂起,javascript,c#,selenium,Javascript,C#,Selenium,我正在单击一个元素,单击的按钮将打开另一个窗口。不幸的是,经过一段时间后,什么也没有发生,脚本因HTTP超时错误而挂起 public static void ClickJavaScriptButton(string Element,IWebDriver Webdriver) { IWebElement element = Webdriver.FindElement(By.Id(Element)); IJavaScriptExecutor executor
public static void ClickJavaScriptButton(string Element,IWebDriver Webdriver)
{
IWebElement element = Webdriver.FindElement(By.Id(Element));
IJavaScriptExecutor executor = (IJavaScriptExecutor)Webdriver;
executor.ExecuteScript("arguments[0].click();", element);
}
编辑:已尝试以下选项
Webdriver.FindElement(By.Id(Element)).Click()
打开新窗口时,必须将焦点更改为该窗口。你可以看到如何做到这一点,这正是我正在做的。上面的代码部分只是您发送的链接中的单击本身,表示“//执行打开新窗口的单击操作”。因此,我正在执行单击,窗口正在打开,但它从未真正“完成”单击操作。这就像无法加载窗口或selenium无法识别它一样。如前所述,最终,我有一个HTTP超时,我不知道如何在C#中完成它,但您当然可以避免使用Javascript单击元素。可能这样做的方式类似于
Webdriver.FindElement(By.Id(Element))。单击()。请检查一下,已经试过了。它没有点击元素,这就是为什么我选择了JavaScript选项。请将所有这些细节放在你的问题中,说明你尝试了什么,以及为什么你选择了JavaScript,这样那些阅读它的人可以尝试帮助你更好地了解你的情况。