空手道 - 使用 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