Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/439.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ExecuteScript方法未返回,导致测试挂起_Javascript_C#_Selenium - Fatal编程技术网

Javascript ExecuteScript方法未返回,导致测试挂起

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

我正在单击一个元素,单击的按钮将打开另一个窗口。不幸的是,经过一段时间后,什么也没有发生,脚本因HTTP超时错误而挂起

 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,这样那些阅读它的人可以尝试帮助你更好地了解你的情况。