nightwatch useXpath 使用后无法设置值
After nightwatch useXpath use cannot setValue
我的守夜人来自 vue-cli webpack 模板。
我的问题是在使用 xpath nightwatch 后丢失了上下文并且找不到存在的元素。
示例(有效):
client.setValue('#NameInput', 'FirstName');
client.setValue('#MiddleNameInput', 'MiddleName');
client.setValue('#LastNameInput', 'LastName');
client.setValue('#AnswerInput', 'ChallengeAnswer');
client.useXpath().click("//option[contains(text(), 'Driver License')]");
示例(不起作用):
client.setValue('#NameInput', 'FirstName');
client.setValue('#MiddleNameInput', 'MiddleName');
client.setValue('#LastNameInput', 'LastName');
client.useXpath().click("//option[contains(text(), 'Driver License')]");
client.setValue('#AnswerInput', 'ChallengeAnswer');
找不到#AnswerInput 元素。
如能就此问题提供任何帮助,我们将不胜感激。
Nightwatch 正在寻找 #AnswerInput
,就好像它是一个 xpath 选择器一样。在 .useXpath()
之后,您必须切换回使用 CSS 和 .useCss()
。
client.setValue('#NameInput', 'FirstName');
client.setValue('#MiddleNameInput', 'MiddleName');
client.setValue('#LastNameInput', 'LastName');
client.useXpath().click("//option[contains(text(), 'Driver License')]");
client.useCss().setValue('#AnswerInput', 'ChallengeAnswer');
您需要使用 .useCss()
命令将选择器的定位策略设置回 css 选择器。 Nightwatch 默认为 css 选择器。
client.setValue('#NameInput', 'FirstName');
client.setValue('#MiddleNameInput', 'MiddleName');
client.setValue('#LastNameInput', 'LastName');
client.useXpath().click("//option[contains(text(), 'Driver License')]").useCss();
client.setValue('#AnswerInput', 'ChallengeAnswer');
为了避免混淆使用的是哪种定位策略,我通常将这些命令单独放在一行上。
client
.setValue('#NameInput', 'FirstName')
.setValue('#MiddleNameInput', 'MiddleName')
.setValue('#LastNameInput', 'LastName')
.useXpath()
.click("//option[contains(text(), 'Driver License')]")
.useCss()
.setValue('#AnswerInput', 'ChallengeAnswer')
我的守夜人来自 vue-cli webpack 模板。 我的问题是在使用 xpath nightwatch 后丢失了上下文并且找不到存在的元素。
示例(有效):
client.setValue('#NameInput', 'FirstName');
client.setValue('#MiddleNameInput', 'MiddleName');
client.setValue('#LastNameInput', 'LastName');
client.setValue('#AnswerInput', 'ChallengeAnswer');
client.useXpath().click("//option[contains(text(), 'Driver License')]");
示例(不起作用):
client.setValue('#NameInput', 'FirstName');
client.setValue('#MiddleNameInput', 'MiddleName');
client.setValue('#LastNameInput', 'LastName');
client.useXpath().click("//option[contains(text(), 'Driver License')]");
client.setValue('#AnswerInput', 'ChallengeAnswer');
找不到#AnswerInput 元素。
如能就此问题提供任何帮助,我们将不胜感激。
Nightwatch 正在寻找 #AnswerInput
,就好像它是一个 xpath 选择器一样。在 .useXpath()
之后,您必须切换回使用 CSS 和 .useCss()
。
client.setValue('#NameInput', 'FirstName');
client.setValue('#MiddleNameInput', 'MiddleName');
client.setValue('#LastNameInput', 'LastName');
client.useXpath().click("//option[contains(text(), 'Driver License')]");
client.useCss().setValue('#AnswerInput', 'ChallengeAnswer');
您需要使用 .useCss()
命令将选择器的定位策略设置回 css 选择器。 Nightwatch 默认为 css 选择器。
client.setValue('#NameInput', 'FirstName');
client.setValue('#MiddleNameInput', 'MiddleName');
client.setValue('#LastNameInput', 'LastName');
client.useXpath().click("//option[contains(text(), 'Driver License')]").useCss();
client.setValue('#AnswerInput', 'ChallengeAnswer');
为了避免混淆使用的是哪种定位策略,我通常将这些命令单独放在一行上。
client
.setValue('#NameInput', 'FirstName')
.setValue('#MiddleNameInput', 'MiddleName')
.setValue('#LastNameInput', 'LastName')
.useXpath()
.click("//option[contains(text(), 'Driver License')]")
.useCss()
.setValue('#AnswerInput', 'ChallengeAnswer')