【问题标题】:Karate - get URL from <a> element using Javascript空手道 - 使用 Javascript 从 <a> 元素获取 URL
【发布时间】:2021-03-23 21:57:33
【问题描述】:

使用空手道,我需要从标签 (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 值。

你知道如何解决这个问题吗?

谢谢!

【问题讨论】:

    标签: automated-tests karate


    【解决方案1】:

    你写的函数不起作用,请阅读这里了解原因: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

    【讨论】:

    • 非常感谢!它按预期工作。解决了。​​
    【解决方案2】:

    我刚刚阅读了https://intuit.github.io/karate/,对于 JavaScript,您不需要多行文档字符串。

    * def greeter = function(title, name) { return 'hello ' + title + ' ' + name }
    

    尝试在函数“”的任一侧不带“”。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-11-10
      • 2021-05-04
      • 1970-01-01
      • 2021-12-22
      • 2023-03-27
      • 1970-01-01
      • 1970-01-01
      • 2017-12-01
      相关资源
      最近更新 更多