Я хотел бы знать это, или, если вам будет проще, на этот раз я ищу, как нажать «Загрузить незащищенный файл» (см. Рисунок). С помощью манипуляций мне удалось щелкнуть три точки и открыть окно. Я нашел текст, распечатал тег и попытался щелкнуть по нему, но это не сработало.
Я обошел это, выполнив действия, нажав ВНИЗ три (должно быть 2?) раза, а затем нажав ВВОД, что работает, но предполагает, что меню всегда одно и то же. Мне бы хотелось найти эту строку.
(Это для Java и Eclipse)
Код, который я написал (может отсутствовать последний символ "}". Он есть в моем коде, но, возможно, не был скопирован).
Код: Выделить всё
public static void downloadInsecureFileFromChromeDownloadsPage(String fileName) throws KDTException {
WebDriver driver = TestContext.getContext().getWebDriver();
WebElement dm = SeleniumTools.waitForWebElement(By.xpath("//downloads-Manager"), 20);
if (dm == null) {
throw new KDTException("Could not find download manager");
}
SearchContext sc = dm.getShadowRoot();
List items = sc.findElements(By.cssSelector("downloads-item"));
WebElement myDiv = null;
for (WebElement item : items) {
sc = item.getShadowRoot();
WebElement div = sc.findElement(By.cssSelector("#main-content"));
String txp = ".//span[@id = 'name' and @title = '{TITLE}']".replace("{TITLE}", fileName);
List nameEles = div.findElements(By.xpath(txp));
if (nameEles.size() > 0) {
myDiv = div;
break;
}
}
if (myDiv == null) {
throw new KDTException(StringUtils.join("Could not find ", fileName));
}
WebElement more = myDiv.findElement(By.xpath(".//cr-icon-button[@id = 'more-actions']"));
more.click();
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
}
Actions actions = new Actions(driver);
actions.moveToElement(more).sendKeys(Keys.DOWN).sendKeys(Keys.DOWN).sendKeys(Keys.DOWN).sendKeys(
Keys.ENTER).build().perform();
driver.navigate().back();
}

Подробнее здесь: https://stackoverflow.com/questions/798 ... adow-roots
Мобильная версия