【问题标题】:How we can access shadow Dom tree elements using karate? [duplicate]我们如何使用空手道访问阴影 Dom 树元素? [复制]
【发布时间】:2020-08-27 17:54:48
【问题描述】:

使用 selenium 我们可以通过这种方式访问​​它:

def expand_shadow_element(element):
      shadow_root = driver.execute_script('return arguments[0].shadowRoot', element)
      return shadow_root
        outer = expand_shadow_element(driver.find_element_by_css_selector("#test_button"))
        inner = outer.find_element_by_id("inner_button")
        inner.click()

所以以类似的方式,我试图找到使用空手道 在 .js 文件中,编写以下代码

expand_shadow_element(element):
      shadow_root = driver.execute_script('return arguments[0].shadowRoot', element)
      return shadow_root** 
        //And call the .js file in feature file by below code:
        def ele = expand_shadow_element(locate('#drawerPanel'))

但这对我不起作用。

【问题讨论】:

  • 将来通过突出显示代码并按controlk 或按表单上的代码按钮来缩进代码。

标签: javascript automation karate


【解决方案1】:

只需使用script() 即可轻松触发页面中的任意JS。

这里是一个例子:https://stackoverflow.com/a/60618233/143475

* script('hangout-module', "_.shadowRoot.querySelector('button').click()")

【讨论】:

  • 我尝试使用下面的代码,但总是出错 javascript 评估失败:* def ele = script('paper-drawer-panel', "_.shadowRoot.querySelector('paper-listbox#menu') ")
  • 我也尝试了元素的 js 路径,但仍然出现相同的错误:document.querySelector("body >app").shadowRoot.querySelector("#drawerPanel")
  • @ShSharma 请遵循以下流程:github.com/intuit/karate/wiki/How-to-Submit-an-Issue - 如果您看到其他人提出的问题,他们会提供指向示例页面的链接,清楚地解释了问题。如果你不能 - 那么不要指望任何帮助
  • 我尝试了其他人给出的所有方法并按照所有链接...仍然无法使用上面的代码和其他示例单击子元素。
  • 通过这段代码,我可以使用 karate * script('document.querySelector("body > nuxeo-app").shadowRoot.querySelector("#menu > nuxeo-menu- icon:nth-child(1)").shadowRoot.querySelector("#button").shadowRoot.querySelector("#icon").click()') 谢谢你的帮助。空手道真的很棒的框架。
猜你喜欢
  • 2021-02-19
  • 2022-01-03
  • 2021-07-13
  • 2014-08-13
  • 2017-06-05
  • 1970-01-01
  • 2015-03-18
  • 2020-04-18
  • 1970-01-01
相关资源
最近更新 更多