在以下位置单击“记录”按钮:遍历硒

时间:2018-08-14 18:54:06

标签: google-chrome selenium shadow-dom

我试图通过Google Chrome中的Selenium单击“记录”按钮。但是我不能。找不到元素。我尝试使用id和xpath。他们都没有工作。

WebElement record = driver.findElement(By.id("record-button")); record.click();

HTML代码是

<template id="profiling-view-template">
  <tr-ui-b-info-bar-group></tr-ui-b-info-bar-group>
  <x-timeline-view-buttons>
    <button id="record-button">Record</button>
    <button id="save-button">Save</button>
    <button id="load-button">Load</button>
  </x-timeline-view-buttons>
  <tr-ui-timeline-view>
    <track-view-container id="track_view_container"></track-view-container>
  </tr-ui-timeline-view>
</template>

任何线索都会受到赞赏。

1 个答案:

答案 0 :(得分:1)

我能够以此访问该对象

WebElement root1 = driver.findElement(By.tagName("tr-ui-timeline-view")); WebElement shadowRoot1 = expandRootElement(root1); WebElement record1 = shadowRoot1.findElement(By.id("record-button")); record1.click();

public WebElement expandRootElement(WebElement element) { WebElement ele = (WebElement) ((JavascriptExecutor) driver).executeScript("return arguments[0].shadowRoot", element); return ele; }