Поиск всех теневых корнейJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Поиск всех теневых корней

Сообщение Anonymous »

Я ищу запрос Selenium XPATH, чтобы найти все узлы в xpath, под которыми есть #shadowroot. Я хочу открыть каждый корень и продолжить делать это, чтобы найти то, что я ищу, поскольку я не могу выполнить поиск из узла «/html».
Я хотел бы знать это, или, если вам будет проще, на этот раз я ищу, как нажать «Загрузить незащищенный файл» (см. Рисунок). С помощью манипуляций мне удалось щелкнуть три точки и открыть окно. Я нашел текст, распечатал тег и попытался щелкнуть по нему, но это не сработало.
Я обошел это, выполнив действия, нажав ВНИЗ три (должно быть 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»