试图访问shadowdom下的一些元素,但是使用javascript我无法访问它

试图访问shadowdom下的一些元素,但是使用javascript我无法访问它,javascript,selenium,shadow-dom,Javascript,Selenium,Shadow Dom,我试图访问shadowroot下的表元素,但无法访问它 结构如下图所示 我尝试了下面的代码,但仍然失败 ${title}= Get Row Count Under Shadow Root Element log ${title} Close Browser 有人能告诉我这有什么不对吗 另外,一个工作代码也非常感谢。我认为您的问题与这个问题有些重复:当您使用Vaadin时,您可能会对它感兴趣,它还通过帮助程序扩展Selenium,以测试Vaadin的web组件(如网格)。这是否回答

我试图访问shadowroot下的表元素,但无法访问它

结构如下图所示

我尝试了下面的代码,但仍然失败

${title}=    Get Row Count Under Shadow Root Element
log    ${title}
Close Browser
有人能告诉我这有什么不对吗


另外,一个工作代码也非常感谢。

我认为您的问题与这个问题有些重复:当您使用Vaadin时,您可能会对它感兴趣,它还通过帮助程序扩展Selenium,以测试Vaadin的web组件(如网格)。这是否回答了您的问题?我投票决定关闭,见副本。当每个人都问同样的问题时,StackOverflow不会变得更好。提问前请先搜索。
import selenium
from selenium import webdriver
from robot.libraries.BuiltIn import BuiltIn

def expand_shadow_element(driver, element):
  shadow_root = driver.execute_script('return arguments[0].shadowRoot', element)
  return shadow_root

def get_row_count_under_shadow_root_element():
  seleniumlib = BuiltIn().get_library_instance('Selenium2Library')
  driver = seleniumlib.driver

  root1 = driver.find_element_by_tag_name('vaadin-grid')
  shadow_root1 = expand_shadow_element(driver, root1)
  row_count = shadow_root1.find_element_by_xpath("//div[@id='scroller']//table[@id='table']").get_attribute("aria-rowcount")
  # row_count = driver.find_element_by_xpath("//div[@id='scroller']").click()

  return  row_count