gpt4 book ai didi

javascript - 需要使用另一个函数中定义的子元素

转载 作者:行者123 更新时间:2023-12-03 01:10:36 26 4
gpt4 key购买 nike

我尝试寻找解决方案,但找不到对我的问题有帮助的解决方案。我在 js 文件中编写的函数中定义了一个元素定位器。我想在另一个 js 文件中使用该定位器作为子元素。我尝试了以下几种方法,但没有帮助我

//Page_Object.js
var digintPO = function () {
this.catItem_status = element.all(by.xpath("//*[text()='Status']/following-sibling::p")).first();
}
module.exports = new digintPO();

//调用上面定位器的另一个js文件

mainpage.js
var digintpo = require('./Page_Object');
this.verifyCatalog = function () {
var catItemRow = element(by.cssContainingText("span", "Robert 4")).digintpo.catItem_status;
catItemRow.getText().then((text) => {
console.log(text);
}

我还尝试了其他选择

选项1

var elem = digintpo.catItem_status;
var catItemRow = element(by.cssContainingText("span", "Robert 4"))

选项2

在此选项中,我尝试将包含的文本解析为 page_object 文件中的元素,例如

this.catItem_status =element(by.cssContainingText("span", catItem_Name)).element.all(by.xpath("//*[text()='Status']/following-sibling::p")).first();

并尝试调用该元素

var catItemRow = digintpo.catItem_status("Robert 4");

最佳答案

Protractor 的 ElementFinder 对象具有 getLocator() 方法,该方法将返回该特定元素使用的定位器。请看下面的示例。

var ele1 = element(by.id("username"));
var ele2 = element(ele1.getLocator()); //this will return by.id("username");
// Both ele1 and ele2 refers the same element now.

所以在你的情况下,你可以使用

var catItemRow = element(by.cssContainingText("span", "Robert 4")).element(digintpo.catItem_status.locator());

关于javascript - 需要使用另一个函数中定义的子元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52224459/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com