Selenium Web Driver - Span Div CSS dropdownframe - Невозможно щелкнуть элемент

У меня есть сложное веб-приложение, которое совместимо только с IE. Вот последовательность действий в пользовательском интерфейсе:

На странице есть несколько фреймов, из которых есть кнопка, которая при нажатии представляет набор параметров меню. И HTML для них, как показано ниже:

<div class="FWDropdownMenu" id="test_dropdown">
<div class="DropdownMenuFrame">
<table>
<tbody>
<tr>
<td>
<span class="eABCD" id="e1">
<div class="DropdownMenuItem" id="test2_dropdown" onclick=return eTop.Fire(1,this,event)">
<table>
<tbody>
<tr>
<td>
<div>Option 1</div>
</td>
</tbody>
</table>
</div>

Я хочу нажать на Вариант 1, поэтому я использовал это, чтобы найти элемент:

List<WebElement> options = driver.findElements(By.tagName("table")
                            .tagName("td").id("e1"));    

Веб-драйвер может получить элемент, но не может щелкнуть по нему. Я получаю сообщение об ошибке, так как элемент не виден, но даже когда параметры отображаются на экране посредством щелчка по пунктам меню, я все равно не могу щелкнуть его.

Есть мысли / предложения?

2 ответа

Я нашел путь. Размещение здесь, поскольку это может помочь кому-либо в будущем:

WebElement element = driver.findElement(By.id("test2_dropdown"));
JavascriptExecutor executor = (JavascriptExecutor)driver;
executor.executeScript("arguments[0].click();", element);

Этот метод использует JavaScript, чтобы нажать кнопку. Из-за дизайна моего приложения я не мог щелкнуть по элементу через селен, но с помощью внутреннего javascript я смог успешно выполнить задачу.

Благодаря Stackru!

Мне кажется, вы не использовали правильный локатор элементов. По вашему вопросу вы хотите нажать на Option 1 и вы выбираете элемент по идентификатору e1, который будет нажимать на элемент HTML ниже

<span class="eABCD" id="e1">

Я бы предпочел использовать простой локатор, как этот:

driver.findElement(By.xpath("//div[contains(text(),'Option 1')]")).click();

Другие вопросы по тегам