使用带有PhantomJs C的SendKeys时出错

时间:2018-04-22 19:12:53

标签: c# selenium-webdriver phantomjs

我正在尝试将phantomjs用于我们的一个应用程序来执行无头浏览器测试。当我试图在字段中输入一个值时,我遇到了以下错误:

  

OpenQA.Selenium.WebDriverException:意外错误。 TypeError -   undefined不是构造函数(评估   ' _getTagName(currWindow).toLowerCase()&#39)

它与Chrome,FF,IE以及无头Chrome完美配合。我做了一些研究,但无法解决问题。

了解PhantomJs比任何其他浏览器都快,所以添加了显式等待并尝试了Thread.Sleep,但仍然是同样的问题。但是,单击同一页面上的按钮工作正常,发现SendKeys的问题。 下面是代码(phantomjs 2.2.1):

        var driver = new PhantomJSDriver();
        driver.Navigate().GoToUrl("https://portal-sandbox.afterpay.com");
        driver.Manage().Window.Maximize();
        driver.Manage().Cookies.DeleteAllCookies();

        var wait = new WebDriverWait(driver, TimeSpan.FromSeconds(30));
    wait.Until(ExpectedConditions.ElementIsVisible(By.ClassName("button")));
        Thread.Sleep(1000);
        //taking screenshot to debug
        sc = driver.GetScreenshot();
        sc.SaveAsFile("f://atest1.jpg");

        var email = driver.FindElement(By.CssSelector("input[name=\"email\"]"));
        email.SendKeys("abc@xyz.com"); //getting error on this line
        driver.FindElementByClassName("button").Click();
        sc = driver.GetScreenshot();
        sc.SaveAsFile("f://atest2.jpg");

尝试了以下不同的解决方案 1)google.com输入值可以正常工作(只是检查sendKeys是否有效) 2)更新了PhantomJs.exe 1.9.8,但结果相同。 3)Javascript执行器输入值 - 没有运气 4)使用动作来构建和执行 - 相同的结果

所以,不确定,如果这个问题是使用phantomJs或者应用程序不支持使用phantomJs输入值。

任何帮助都非常感谢。

0 个答案:

没有答案