Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.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
C# Selenium在运行Javascript后失去对浏览器的控制_C#_Javascript_Selenium_Selenium Webdriver - Fatal编程技术网

C# Selenium在运行Javascript后失去对浏览器的控制

C# Selenium在运行Javascript后失去对浏览器的控制,c#,javascript,selenium,selenium-webdriver,C#,Javascript,Selenium,Selenium Webdriver,在Selenium中,当我运行命令时,比如 document.evaluate("My Xpath", document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null) WebDriver失去了对浏览器的控制。没有任何东西超过Javascript执行运行时间,测试将始终失败 我想这与返回一个元素有关,但我在任何地方都找不到它 编辑: 有关守则 public CustomPage Login(string username, string pa

在Selenium中,当我运行命令时,比如

document.evaluate("My Xpath", document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null)
WebDriver失去了对浏览器的控制。没有任何东西超过Javascript执行运行时间,测试将始终失败

我想这与返回一个元素有关,但我在任何地方都找不到它

编辑:

有关守则

public CustomPage Login(string username, string password) 
{
    SendKeys(username, EmailSlot);
    SendKeys(password, PasswordSlot);
    LoginButton.Click();
    while True 
    {
        try 
        {
            if ((driver as IJavaScriptExecutor).ExecuteScript("document.evaluate(\"//a[text() = 'log out'\", document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue") != null) break;
        }
        catch (Exception)
        { }
    }
    return CustomPage(driver);
} 

我们能看到周围的环境和相关的C代码吗?你为什么要通过JavaScript而不是Selenium自己的原生方法来运行XPath?Arran我们现有的代码偶尔使用Selenium的XPath方法。我想看看是否有一个更好的解决方案,可以在一段时间内多次奏效。@Brad,好吧,我的建议是找出为什么有时候有效,有时候失败,而不是完全绕过Selenium。尽管如此,在执行JS时,您必须给Selenium一点提示,让它返回document.evaluate\//a[text='log out',document,null,XPathResult.FIRST\u ORDERED\u NODE类型,null.singleNodeValue作为第一次尝试。如果XPath给您一个结果,Selenium应该将其作为IWebElement返回。