所以我手头有以下问题;
我想从registrationNumber获取文本。所以我定义了一个var regNumber = null;
我在global.js中定义了var,因为我希望在不同的pageObjects和特定函数之外的整个测试中访问var。
当它获取文本并且它需要在模板搜索中使用setValue填充文本时它返回Object Object,所以我尝试使用toString但是相同。 这是我需要使用的函数才能使用var
module.exports = {
var regNumber = browser.globals;
页面对象
openSearch: function(browser, regNumber ) {
browser.perform(function () {
browser.waitForElementVisible('.registrationnumber-search input', 3000)
browser.setValue('.registrationnumber-search input', regNumber )
return this;
})
测试
.continueButton()
browser.getText('xpath', '//*[@id="wizardDetailsTab"]/div[1]/div/div[1]/h4/span[2]', function (result) {
regNumber = result.value
console.log(result.value)
})
certificateEditor
.quickMenu("Permit")
.createNewItem("template")
permit
.openSearch(browser, regNumber)
console.log(result.value)返回我想要的值,但是当我想在setValue中使用该值时,它不起作用。如果我创建一个函数并在该范围内执行getText,它将填充我需要的内容。 BUt我想知道为什么当我这样尝试时它不起作用。 提前谢谢!
答案 0 :(得分:1)
:
openSearch: function(regNumber ) {
return this.perform(function (done) {
this.api.waitForElementVisible('.registrationnumber-search input', 3000)
.setValue('.registrationnumber-search input', regNumber )
done(); //prevent timeout issue
})
将getText()之后的代码移入其中。
var permit=client.page.permit() // replace .permit() as .yourpageobjectjsname()
.....
.continueButton()
browser.getText('xpath', '//*[@id="wizardDetailsTab"]/div[1]/div/div[1]/h4/span[2]', function (result) {
regNumber = result.value
console.log(result.value)
certificateEditor
.quickMenu("Permit")
.createNewItem("template")
permit
.openSearch(regNumber)
})
答案 1 :(得分:0)
从您看来,当您正在寻找字符串时,您正在返回一个对象。我想你只需要指定你想要的对象。
browser.globals
应该是这样的 browser.globals.value或browser.globals.text
您的browser.globals是返回的对象。您必须指定希望该对象返回的键/值对。