我正在尝试定位一个字段来上传文件,但该元素位于 shadow-root 中
我尝试了以下代码,但我在
java.lang.NullPointerException
上得到了shadowRoot.findElement
:
private static WebElement getShadowRoot(WebDriver driver, WebElement shadowHost) {
JavascriptExecutor js = (JavascriptExecutor) driver;
return (WebElement) js.executeScript("return arguments[0].shadowRoot", shadowHost);
}
public void uploadFileWithIncorrectBirthYear() throws TestingException {
String url = System.getProperty("user.dir")+"\\src\\test\\resources\\files\\customer-upload-old-birth-year.xls";
WebElement shadowHost = driver.findElement(By.cssSelector("#cphContent_cifCustomerFile_fakeFileInput"));
SearchContext shadowRoot = getShadowRoot(driver,shadowHost);
WebElement shadowElement = shadowRoot.findElement(By.cssSelector("#file-upload-button"));
shadowElement.sendKeys(url);
}