javascript – TypeError:driver.isElementPresent不是函数

前端之家收集整理的这篇文章主要介绍了javascript – TypeError:driver.isElementPresent不是函数前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试编写一个登录到网站的节点功能,并且无法使其正常工作.我试图等待页面加载使用isElementPresent函数,在 this post中引用但它似乎没有工作.

这是我到目前为止所拥有的:

const webdriver = require('selenium-webdriver')
const By = webdriver.By

var username = ''
var password = ''
var timeout = 5000

function FacebookLogin(username,password) {

    var driver = new webdriver.Builder()
        .withCapabilities(webdriver.Capabilities.chrome())
        .build()

    driver.get('http://www.facebook.com')

    driver.wait(function() {
        return driver.isElementPresent(By.id('email'))
    },timeout)

    var user = driver.findElement(By.id('email'))
    user.sendKeys(username)

    var pass = driver.findElement(By.id('pass'))
    pass.sendKeys(password)

    pass.submit()
    driver.sleep(5000)
    driver.quit()
}

FacebookLogin(username,password)

当我运行该函数虽然我收到错误TypeError:driver.isElementPresent不是一个函数.这里发生了什么,我错过了什么?

解决方法

For consistency with the other Selenium language bindings,WebDriver#isElementPresent() and WebElement#isElementPresent() have been deprecated.

如果您使用的是Selenium 3,则应尝试使用findElements来确定元素是否存在,如下所示: –

driver.findElements(By.id('email')).then(found => !!found.length);

或者如果你想等到欲望元素出现,你应该尝试使用如下的webdriver.until: –

const until = webdriver.until;

var user = driver.wait(until.elementLocated(By.id('email')),timeout);
user.sendKeys(username);

猜你在找的JavaScript相关文章