无法使用PhantomJS Webdriver和Java提交表单 我正在用java编写程序。其中一个功能是使用用户名和密码登录网站。我最初编写这个基本函数是为了使用ChromeDriver登录页面 public void Login() { System.out.println("Logging In"); driver.get(url); ScreenShot("/Users/Adam/Documents/Screens/1.jpg"); WebElement login = driver.findElement(By.xpath("//*[@id=\"username\"]")); login.sendKeys(username + Keys.TAB + password); ScreenShot("/Users/Adam/Documents/Screens/2.jpg"); }

无法使用PhantomJS Webdriver和Java提交表单 我正在用java编写程序。其中一个功能是使用用户名和密码登录网站。我最初编写这个基本函数是为了使用ChromeDriver登录页面 public void Login() { System.out.println("Logging In"); driver.get(url); ScreenShot("/Users/Adam/Documents/Screens/1.jpg"); WebElement login = driver.findElement(By.xpath("//*[@id=\"username\"]")); login.sendKeys(username + Keys.TAB + password); ScreenShot("/Users/Adam/Documents/Screens/2.jpg"); },java,selenium,webdriver,phantomjs,Java,Selenium,Webdriver,Phantomjs,上面的函数在Chromedriver中工作,但是当我在phantomjs中运行相同的函数时,结果不一样。这是错误输出 线程“main”org.openqa.selenium.WebDriverException:{“errorMessage”:“undefined”不是对象(评估'c.name=this.name'),“request”:{“headers”:{“Accept”:“application/json,image/png”,“Connection”:“Keep Alive”,“Con

上面的函数在Chromedriver中工作,但是当我在phantomjs中运行相同的函数时,结果不一样。这是错误输出

线程“main”org.openqa.selenium.WebDriverException:{“errorMessage”:“undefined”不是对象(评估'c.name=this.name'),“request”:{“headers”:{“Accept”:“application/json,image/png”,“Connection”:“Keep Alive”,“Content Length”:“63”,“Content Type”:“application/json;charset=utf-8”,“Host”:“localhost:48788”},“httpVersion”:“1.1”,“方法”:“POST”,“POST”:“{\“id\”:\”:wdc:1421947793877\”,“value\”:[\”用户名密码\“]}”、“url”:“/value”、“urlParsed”:“{”锚定“:”查询“,”文件“:”值“,”路径“/”值“,”相对“:”值“,”端口“:”主机“,”密码“:”用户“:”用户“:”用户信息“:”权限“:”协议“:”源“:”值“,”查询键“{}”,区块“:[”值“]}”,urlOriginal:”/会话/4562eec0-a25c-11e4-a2af-d1362c6e21bf/element/%3Awdc%3A1421947793877/value“}
命令持续时间或超时:811毫秒

通过查看上面的错误,看起来信息正在提交到表单,但是页面中有一些错误

我也尝试过另一种方法,虽然它仍然不起作用,但它也不会给我一个错误

    public void Login() {
        System.out.println("Logging In");
        driver.get(url);
        ScreenShot("/Users/Adam/Documents/Screens/1.jpg");
        WebElement login = driver.findElement(By.xpath("//*[@id=\"login\"]"));
        login.sendKeys(Keys.TAB + username + Keys.TAB + password + Keys.ENTER);
        ScreenShot("/Users/Adam/Documents/Screens/2.jpg");
    }
上面的函数没有定位用户名字段,而是查找表单本身并尝试输入数据。结果是填写用户名和密码,但表单未提交


任何可能的解决方案或想法都将不胜感激。谢谢

答案其实很简单…在这让我疯狂了几天之后,我想,为什么不更新Ghostdriver…所以我做了,现在一切都很好。可能是我应该尝试的第一件事,但是嘿嘿

该问题与Phantomjs 1.9.7有关。该问题在更新到1.9.8版后得到修复