Я относительно новичок в Selenium (и для программирования в целом), но я просто использую решение, которое сработало для меня.
Selenium 2 не был разработан для непосредственного управления элементами со скрытой видимостью. Например, вы не сможете найти его ID или CSS-селектор.
У меня была ситуация с ботом, где у меня была таблица HTML с большим количеством иены, и при нажатии, когда из них выпадало раскрывающееся меню со скрытой видимостью. Это было даже в другом фрейме.
Это конкретная ситуация, но я не мог найти никакого решения, поэтому я выбрал этот (плохой), но это работает действительно последовательно, несмотря на уродливый код.
Сначала вы должны switchToDesiredFrame();
- ввести логику driver.switchTo.frame()
здесь.
Than:
WebElement table = driver.findElements(By.tagName("table")).get(index_1);
List<WebElement> dataCells= table .findElements(By.tagName("td"));
WebElement spceificDataCellIWanted = dataCells.get(index_2);
System.out.println(spceificDataCellIWanted.getText());
DataCells являются буквально тегами <td>
, и они становятся WebElements
в списке, так как <td>
- это элементы в список под контейнером <table>
.
Он работал на Chrome и Firefox для меня, но не в любом браузере без браузера, не совсем точно, почему. Если вы, ребята, сталкиваетесь с чем-то подобным и имеете более элегантное решение (возможно, не так сложно его найти), пожалуйста, поделитесь!