Как нажимать на элементы без идентификатора - PullRequest
0 голосов
/ 05 апреля 2019

У меня следующий HTML-код, и я пытаюсь щелкнуть элемент с именем tasks.

*<td class="class_popup2_menuitem_caption" unselectable="on" nowrap="">Tasks</td>*

Я пробовал это:

x = driver.find_element_by_xpath("//div/table/tbody//td[contains(text(), 'Tasks')]") 
x.click()

Однако я получаю следующий ответ.

ElementNotVisibleException: Сообщение: элемент не взаимодействует

1 Ответ

0 голосов
/ 05 апреля 2019

Я пытаюсь показать основную причину этого исключения, используя селен и Java.Пожалуйста, попробуйте реализовать в python.

ElementNotVisibleException: Сообщение: элемент не взаимодействует вызывается, когда элемент найден, но вы не можете взаимодействовать с ним.Например, вы не можете нажимать или отправлять ключи.

Для этого может быть несколько причин:

 - The element is not visible / not displayed The element is off screen
 - The element is behind another element or hidden Some other action
 - needs to be performed by the user first to enable it.

Стратегииэто может работать, чтобы сделать его интерактивным (в зависимости от обстоятельств.)

1.Подождите, пока элемент не станет видимым / активируемым

WebDriverWait wait = new WebDriverWait(driver, timeout);
wait.until(ExpectedConditions.visibilityOf(element)); 
wait.until(ExpectedConditions.elementToBeClickable(element));

2.Прокручивайте, пока элемент не появится на дисплее

Actions action = new Actions(driver);
action.moveToElement(element);

3.Используйте JavaScript для прямого взаимодействия с DOM

JavascriptExecutor javascript = (JavascriptExecutor) driver;
javascript.executeScript("var element = document.querySelector('locator'); element.value = 'whatever';")

4.Выполните любое другое необходимое действие и, возможно, подождите до этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...