尝试使用selenium和按ID选择元素.NET,但是由于使用了Shadowroot元素而获得了异常NoSuchElem



单击此处查看我尝试选择的图像

以下是我迄今为止尝试过的内容,但没有取得任何进展:-

driver.FindElement(By.CssSelector("amplify-sign-in /deep/ amplify-form-section/amplify-auth-fields /deep/ amplify-username-field /deep/ amplify-form-field /deep/ #username"));

WebDriver无法使用shadowroot元素内的元素。我已经使用JavaScript来处理这些元素。

var clickPrintBtn = @"
document.body
.querySelector('print-preview-app').shadowRoot
.querySelector('print-preview-sidebar').shadowRoot
.querySelector('print-preview-button-strip').shadowRoot
.querySelector('.action-button')
.click();";
WebDriver.ExecuteJavaScript(clickPrintBtn);

以同样的方式,您可以对shadowroot内的元素执行其他操作。

最新更新