Javascript Webdriverio元素是否需要为字符串类型?
Webdriverio元素是否需要为字符串类型 我的代码如下:Javascript Webdriverio元素是否需要为字符串类型?,javascript,selenium-webdriver,webdriver-io,Javascript,Selenium Webdriver,Webdriver Io,Webdriverio元素是否需要为字符串类型 我的代码如下: describe('Test Contact Us form WebdriverUni', function() { it.only('Should be able to submit a successful submission via contact us form', function(done) { browser.pause(5000); var firstNameTextField = $("[
describe('Test Contact Us form WebdriverUni', function() {
it.only('Should be able to submit a successful submission via contact us form', function(done) {
browser.pause(5000);
var firstNameTextField = $("[name='first_name']");
var firstNameTextField = "[name='last_name']";
browser.setValue(firstNameTextField, 'Joe');
使用以下代码:var和$,我似乎收到了以下异常:“元素需要是字符串类型”
此外,以下操作失败,但出现相同的异常:
var firstNameTextField = browser.element("[name='last_name']");
然而,以下工作:
browser.setValue("[name='first_name']", 'Joe');
有什么想法吗?您知道,webdriver setValue使用的选择器必须是String类型 使用这段代码时:
var firstNameTextField=$(“[name='first\u name']”)代码>您得到的是一个对象,而不是字符串
当你这样称呼它时:browser.setValue(“[name='first\u name']”,'Joe')代码>您正在提供字符串类型的选择器。它是有效的
因此,您可能应该将变量更改为var firstNameTextField=“[name='first_name']”代码>
编辑:
我还注意到您在这里两次使用相同的变量名:
var firstNameTextField = $("[name='first_name']");
var firstNameTextField = "[name='last_name']";
第二个不应该是lastNameTextField吗?您知道,webdriver setValue使用的选择器必须是String类型
使用这段代码时:var firstNameTextField=$(“[name='first\u name']”)代码>您得到的是一个对象,而不是字符串
当你这样称呼它时:browser.setValue(“[name='first\u name']”,'Joe')代码>您正在提供字符串类型的选择器。它是有效的
因此,您可能应该将变量更改为var firstNameTextField=“[name='first_name']”代码>
编辑:
我还注意到您在这里两次使用相同的变量名:
var firstNameTextField = $("[name='first_name']");
var firstNameTextField = "[name='last_name']";
第二个不是应该是lastNameTextField吗?Chris非常感谢!上面列出的同名变量仅用于说明,再次感谢您花时间创建详细答案。我将如何使用$根据以下内容设置变量:?如果您想使用从var firstNameTextField=$(“[name='first_name']”)获得的元素
then:而不是browser.setValue(firstNameTextField,'Joe')代码>像这样做:firstNameTextField.setValue('Joe')代码>克里斯,非常感谢!上面列出的同名变量仅用于说明,再次感谢您花时间创建详细答案。我将如何使用$根据以下内容设置变量:?如果您想使用从var firstNameTextField=$(“[name='first_name']”)获得的元素
then:而不是browser.setValue(firstNameTextField,'Joe')代码>像这样做:firstNameTextField.setValue('Joe')代码>