代码:
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材料,但还没有得到解决方案。
答案 0 :(得分:2)
WebdriverIO的选择器与Selenium Webdriver不同。它将接受" XPath"的字符串值。或" CSS"选择。 " By未定义"您看到的错误是因为它正在寻找一个" 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')
答案 1 :(得分:1)
定位器必须是字符串
要设置值,您可以使用setValue
browser.setValue("//input[@type='text' and @aria-label='user name']", 'mikestr');
答案 2 :(得分:0)
我在使用角度误差相同的By is not defined
时遇到了另一个问题。对于可能会在这里出现的其他人,我的解决方案是添加导入
import { By } from "@angular/platform-browser";