ReferenceError : By is not defined - webdriverIO
ReferenceError : By is not defined - webdriverIO
代码:
var assert = require('assert');
describe('webdriver.io api page', function() {
it('should open login page', function () {
browser.url('/login');
browser.pause(10000);
})
it('Should enter login details and submit', function() {
browser.pause(10000);
browser.element(By.xpath("//input[@type='text' and @aria-label='user name']")).sendKeys("mikestr");
})
});
我是 webdriverIO 的新手,正在尝试使用 xpath 定位用户名文本框,但它会抛出错误。我环顾了很多 webdriverIO material 但还没有找到解决方案。
定位符必须是字符串
设置值可以使用setValue
browser.setValue("//input[@type='text' and @aria-label='user name']", 'mikestr');
WebdriverIO 的选择器与 Selenium Webdriver 不同。它将接受 "XPath" 或 "CSS" 选择器的字符串值。您看到的 "By is not defined" 错误是因为它正在寻找选择器的 "String" 值。
文档:
http://webdriver.io/guide/usage/selectors.html#CSS-Query-Selector
在您的情况下,您只需要传递如下内容:
browser.element('"//input[@type='text' and @aria-label='user name']"')
.setValue('mikestr')
或者您可以设置变量并传递如下变量:
var XPath = "//input[@type='text' and @aria-label='user name']"
browser.element(XPath).setValue('mikestr')
我在使用 angular 时遇到了不同的问题,但出现了相同的 By is not defined
错误。对于可能会在这里结束的任何其他人,我的解决方案是添加导入
import { By } from "@angular/platform-browser";
代码:
var assert = require('assert');
describe('webdriver.io api page', function() {
it('should open login page', function () {
browser.url('/login');
browser.pause(10000);
})
it('Should enter login details and submit', function() {
browser.pause(10000);
browser.element(By.xpath("//input[@type='text' and @aria-label='user name']")).sendKeys("mikestr");
})
});
我是 webdriverIO 的新手,正在尝试使用 xpath 定位用户名文本框,但它会抛出错误。我环顾了很多 webdriverIO material 但还没有找到解决方案。
定位符必须是字符串
设置值可以使用setValue
browser.setValue("//input[@type='text' and @aria-label='user name']", 'mikestr');
WebdriverIO 的选择器与 Selenium Webdriver 不同。它将接受 "XPath" 或 "CSS" 选择器的字符串值。您看到的 "By is not defined" 错误是因为它正在寻找选择器的 "String" 值。
文档: http://webdriver.io/guide/usage/selectors.html#CSS-Query-Selector
在您的情况下,您只需要传递如下内容:
browser.element('"//input[@type='text' and @aria-label='user name']"')
.setValue('mikestr')
或者您可以设置变量并传递如下变量:
var XPath = "//input[@type='text' and @aria-label='user name']"
browser.element(XPath).setValue('mikestr')
我在使用 angular 时遇到了不同的问题,但出现了相同的 By is not defined
错误。对于可能会在这里结束的任何其他人,我的解决方案是添加导入
import { By } from "@angular/platform-browser";