我正在尝试将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输入值。
任何帮助都非常感谢。