Javascript sso表单的webdriver错误

Javascript sso表单的webdriver错误,javascript,selenium,Javascript,Selenium,我正试图自动化我的访问,并在一个法国网站上做一些废话。 () 我有一个有效帐户,但无法使用selenium登录。 我已经设法用xpath表达式或类似这样的代码获取元素: browser.findElement(webdriver.By.id('sso-email')).sendKeys('mymail@org.com'); //var emailField = browser.findElement(webdriver.By.xpath("//input[@id='sso-email']"))

我正试图自动化我的访问,并在一个法国网站上做一些废话。 ()

我有一个有效帐户,但无法使用selenium登录。 我已经设法用xpath表达式或类似这样的代码获取元素:

browser.findElement(webdriver.By.id('sso-email')).sendKeys('mymail@org.com');
//var emailField = browser.findElement(webdriver.By.xpath("//input[@id='sso-email']")) ;
我还使用了以下函数来确保元素存在:

function isElementPresent(driver, by){
    try{
      driver.findElement(by);
      return true;
    }catch(NoSuchElementException){
      return false;
    }
}
初始化我的Web驱动程序,如下所示:

var fs = require('fs');
var chromedriver = require('chromedriver');
var webdriver = require('selenium-webdriver');

var browser = new webdriver.Builder().usingServer().withCapabilities({ 'browserName': 'chrome' }).build();
每次出现以下错误时:

NoSuchElementError:没有这样的元素:无法找到元素: {“方法”:“css选择器”,“选择器”:“*[id=“sso电子邮件”]”}(会话 信息:chrome=56.0.2924.87)(驾驶员信息:chromedriver=2.28.455520 (cc17746adff54984afff480136733114c6b3704b),平台=Windows NT 10.0.14393 x86_64)

我对xpath表达式很有信心(也许我错了)

我不明白错误是什么


登录表单似乎是作为一个组件生成的(首先显示一个进度轮);这可能是专门为防止自动脚本而设计的吗?

您的Selenium代码看起来不错,但不完整

登录表单放置在带有
name=“pass\u iframe”
iframe

因此,在找到电子邮件和密码字段之前,您需要从页面获取iframe,切换到它,识别登录元素并执行登录,然后切换回主页

var iframe  = driver.findElements(webdriver.By.xpath('iframe[name='pass_iframe']'));
driver.switchTo().frame(iframe);
//find the login elements
//do the login
driver.switchTo().defaultContent();