如何在影子根中选择class="logo">
html代码图片
你能试试吗
const logo = element(by.deepCss('.logo'));
您也可以参考以下链接了解更多信息
https://www.protractortest.org/#/api?view=ProtractorBy.prototype.deepCss
https://www.seleniumeasy.com/selenium-tutorials/accessing-shadow-dom-elements-with-webdriver
快乐编码~
==================================================Selenium+Java 解决方案
public class SeleniumJava {
public static WebDriver driver;
@Test
public void shaddowTest() {
System.setProperty("webdriver.chrome.driver", "/Users/krishnamajgaonkar/Desktop/Work/QAAuto/chromedriver-mac-64bit");
driver = new ChromeDriver();
driver.get("https://accounts.careerbuilder.com/share/login.aspx?next=http%3a%2f%2femployer.careerbuilder.com%2fjobposter%2fmycb.aspx");
driver.findElement(By.name("cbsys_login_email")).sendKeys("testusercb@mailinator.com");
driver.findElement(By.name("cbsys_login_password")).sendKeys("Stackoverflow12");
driver.findElement(By.name("btnsigninemp")).click();
try {
Thread.sleep(50000);
} catch (InterruptedException e) {
System.out.println("HandleException");
}
JavascriptExecutor js = (JavascriptExecutor) driver;
WebElement logo = (WebElement) js.executeScript("return document.querySelector('cbd-intl-header').querySelector('cut-wc-header').shadowRoot.querySelector('.logo')");
System.out.println(logo.getAttribute("class"));
}
public void tearDown() {
driver.quit();
}
}
输出:
logo