空手道 - 使用 Javascript 从 <a> 元素中获取 URL
Karate - get URL from <a> element using Javascript
使用空手道,我需要从标签 (href) 中提取 url。我已经在浏览器中直接使用 Javascript 进行了尝试:
document.querySelector('a[rel="noopener"]').href
它在浏览器中运行良好,我收到了完整的 url 地址(“https://XXXXXXXX”)。然后我想使用以下方法将其放置到空手道中:
* def emailLink =
"""
function(){
var link = document.querySelector('a[rel="noopener"]').href;
return link;
}
"""
* print emailLink()
但是不行。变量=“”。我需要接收 href 值。
你知道如何解决这个问题吗?
谢谢!
我刚读完 https://intuit.github.io/karate/,只是 JavaScript 你不需要多行文档字符串。
* def greeter = function(title, name) { return 'hello ' + title + ' ' + name }
尝试在函数“”的两边去掉“””。
您正在编写的函数将无法运行,请阅读此内容以了解原因:https://github.com/intuit/karate/tree/master/karate-core#karate-vs-the-browser
因此进行此更改(并注意空手道如何为您 document.querySelector()
):
* def linkElement = locate('a[rel="noopener"]')
* def linkValue = linkElement.attribute('href')
请注意,对于第二行,这也应该有效:
* def linkValue = linkElement.script('_.href')
甚至这样:
* def linkValue = linkElement.property('href')
开始习惯空手道中的 Element
抽象。它可能非常有用:https://github.com/intuit/karate/tree/master/karate-core#chaining
使用空手道,我需要从标签 (href) 中提取 url。我已经在浏览器中直接使用 Javascript 进行了尝试:
document.querySelector('a[rel="noopener"]').href
它在浏览器中运行良好,我收到了完整的 url 地址(“https://XXXXXXXX”)。然后我想使用以下方法将其放置到空手道中:
* def emailLink =
"""
function(){
var link = document.querySelector('a[rel="noopener"]').href;
return link;
}
"""
* print emailLink()
但是不行。变量=“”。我需要接收 href 值。
你知道如何解决这个问题吗?
谢谢!
我刚读完 https://intuit.github.io/karate/,只是 JavaScript 你不需要多行文档字符串。
* def greeter = function(title, name) { return 'hello ' + title + ' ' + name }
尝试在函数“”的两边去掉“””。
您正在编写的函数将无法运行,请阅读此内容以了解原因:https://github.com/intuit/karate/tree/master/karate-core#karate-vs-the-browser
因此进行此更改(并注意空手道如何为您 document.querySelector()
):
* def linkElement = locate('a[rel="noopener"]')
* def linkValue = linkElement.attribute('href')
请注意,对于第二行,这也应该有效:
* def linkValue = linkElement.script('_.href')
甚至这样:
* def linkValue = linkElement.property('href')
开始习惯空手道中的 Element
抽象。它可能非常有用:https://github.com/intuit/karate/tree/master/karate-core#chaining