Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/446.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
量角器JavaScript获取文本标记h1_Javascript_Protractor - Fatal编程技术网

量角器JavaScript获取文本标记h1

量角器JavaScript获取文本标记h1,javascript,protractor,Javascript,Protractor,我正在努力从web元素中获取文本。我想将文本返回给函数调用方,但它总是返回null <div _ngcontent-pet-c4 class="intro-content"> <h1 _ngcontent-pet-c4>Hello World Welcome!</h1> </div> 函数总是返回null 第1期。更改css选择器 元素(by.css(“.intro content h1”) 问题2。承诺包装你的代码 as

我正在努力从web元素中获取文本。我想将文本返回给函数调用方,但它总是返回null

<div _ngcontent-pet-c4 class="intro-content">
  <h1 _ngcontent-pet-c4>Hello World Welcome!</h1>
</div>

函数总是返回null

第1期。更改css选择器 元素(by.css(“.intro content h1”)

问题2。承诺包装你的代码

async function loadWebsite(url)
{
return new Promise(async(resolve,reject)=>{

try{
       await browser.get(url);
       await browser.sleep(5000);
       browser.ignoreSynchronization = true;
       let eleWelcomeTxt = element(by.css(".intro-content h1"));
       await browser.wait(EC.textToBePresentInElement(eleWelcomeTxt), 5000);
       let text = await eleWelcomeTxt.getText();
       return resolve(text);
       }catch(err){
        console.log("exception error: " + err.message);
        return reject();
      } 
})
}
根据,EC.texttobepresentElement方法接受2个参数

EC.textToBePresentInElement(element, elementText)
实际上,我不太确定您正在尝试做什么,请给出一个如何验证元素中文本的示例:

/*
 * get element Text
 * @param container - the container of the desired element
 * @param elementToGet - the class name of the element to get
 * @param value - value to check
 */
expectElementTextToEqual: function (container, elementName, expectedVal) {
    ptor.ignoreSynchronization = true;
    this.elementloadedInDOM(container);
    let cont = element.all(by.className(container)).first();
    cont.isDisplayed();
    let el = cont.all(by.className(elementName)).first();
    el.isEnabled();
    el.isDisplayed();
    expect(el.getText()).toEqual(expectedVal);
},

webdriver.WebElement.getText将获取此元素的可见内部文本,包括子元素。@Bharath Kumar S,谢谢,是否可以编写更简单的代码?谢谢回复。基本上,我尝试从承诺中返回纯文本。如果我使用“expect()”,这没有问题,但我没有在这里测试有效文本。我只想将文本返回给调用方。
量角器
API是异步的,因此您的
return retText;
将在
eleWelcomeTxt.getText()之前执行
,因此
retText
始终为空。
/*
 * get element Text
 * @param container - the container of the desired element
 * @param elementToGet - the class name of the element to get
 * @param value - value to check
 */
expectElementTextToEqual: function (container, elementName, expectedVal) {
    ptor.ignoreSynchronization = true;
    this.elementloadedInDOM(container);
    let cont = element.all(by.className(container)).first();
    cont.isDisplayed();
    let el = cont.all(by.className(elementName)).first();
    el.isEnabled();
    el.isDisplayed();
    expect(el.getText()).toEqual(expectedVal);
},