2017-07-28 67 views
1

香港专业教育学院得到了一些麻烦与DIV已经得到了类名和ID获取文本,我试着 element(by.css('.panel-body')).getText();<-return object Objct element(by.className('panel-body')).getText();<-return object Object element(by.id('message-body')).getText();<-return object Object element(by.xpath('//*[@id="message-body"]/text()[3]')).getText()<-return textObjectHTML view, I need to get this link 0.0.0.0:3000...量角器 - 硒元素角2打字稿

HTML视图,我需要得到这个链接0.0。 0.0:3000成串,你能帮我吗?谢谢:)

+0

好吧,GetText返回承诺,有没有什么办法来提取该对象的字符串? –

+1

你必须解决承诺。请参考此链接 - https://stackoverflow.com/questions/29478905/protractor-element-gettext-returns-an-object-and-not-string –

回答

1

使用正则表达式来提取网址:

element(by.css('#message-body')) 
    .getText() 
    .then(text => text.match(/[^"\s]+\/student\/register\/\?[^"\s]+/)[0]) 
    .then(url => console.log(url)); 
+0

谢谢,你知道也许如何返回这个URL的功能?它在内部返回时是未定义的。然后,当我返回所有内部返回的元素时,然后它返回元素的对象:) –

+1

您正在处理异步调用,因此无法直接从函数中获取结果。也就是说,函数返回一个'Promise',可以用'.then'来解决。所以如果你想在其他地方使用'url',那么将它存储在一个全局变量中,或者返回'Promise'并在需要时解析它。 –