首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未定义Webdriverjs - By

未定义Webdriverjs - By
EN

Stack Overflow用户
提问于 2015-06-01 15:52:19
回答 4查看 7.4K关注 0票数 2

我正在使用webdriverjs,打开一个网站,并选择一个元素的id。代码是,

代码语言:javascript
复制
var webdriverjs = require('webdriverjs'),
    client      = webdriverjs.remote({desiredCapabilities:{browserName:'phantomjs'}}).init();

client.url('www.google.com', function(err){
  client.findElement(webdriverjs.By.id('lst-ib')).sendKeys('duck duck go\n')
})

它抛出错误,因为,

代码语言:javascript
复制
webdriverjs.By is undefined

如何在webdriverjs中使用By函数

EN

回答 4

Stack Overflow用户

发布于 2015-08-19 21:56:01

我认为你仍然可以使用webdriverjs,但他们的示例代码有一个错误

https://code.google.com/p/selenium/wiki/WebDriverJs

示例中的代码

driver.findElement(By.name("q")).sendKeys("webdriver");

driver.findElement(By.name("btnG")).click();

应该是

driver.findElement(webdriver.By.name("q")).sendKeys("webdriver");

driver.findElement(webdriver.By.name("btnG")).click();

我不确定为什么它在网站上是不正确的。

票数 4
EN

Stack Overflow用户

发布于 2020-02-04 00:18:05

以上所有内容都很旧,现在可以使用selenium-webdriver。在我的例子中,我只是忘记了包含By,而且我的集成开发环境也没有什么帮助。

ReferenceError: By is not defined

我只需要:

const {By} = require('selenium-webdriver');

02022020版本的完整示例,包括使用chromedriver设置路径!

代码语言:javascript
复制
const webdriver = require('selenium-webdriver');
const chrome = require('selenium-webdriver/chrome');
const chromedriver = require('chromedriver');
const { By, Key } = webdriver; // Using object destructuring for convenience - or webdriver.By

chrome.setDefaultService(new chrome.ServiceBuilder(chromedriver.path).build());

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

driver.get('https://www.google.com');

driver.findElements(By.xpath('//input[@type="text"]'))
    // ES6 desturcturing usage. Could be: (inputs), and then inputs[0].sendKeys...
    .then(([searchInput]) => {
        // inputs[0].sendKeys(...words);
        searchInput.sendKeys('stack overflow bumper stickers')
            .then(() => {
                searchInput.sendKeys(Key.ENTER);
            });
    });
票数 1
EN

Stack Overflow用户

发布于 2015-06-19 05:27:03

从webdriverjs npm页面...

已弃用

项目现在名为WebdriverIO,并已移动到GitHub上的webdriverio/webdriverio。请使用$ npm install webdriverio,因为不再维护此NPM项目!

因此,require('webdriverio');可能是您最好的选择。代替client.findElement(webdriverjs.By.id('lst-ib')).sendKeys('duck duck go\n')

简单地说

client.setValue('#lst-ib','duck duck go', function(err, res){ //some callback here });

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30568297

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档