Как сделать так, чтобы текст (в таблице HTML) получал щелчок с помощью Selenium, когда не назначен идентификатор (пробовали различные решения)?

Ниже приведен фиктивный источник HTML-страницы (воссозданный из страницы, которая на самом деле не похожа на веб-страницу, она создается с помощью инструмента и выглядит как документ):

<!DOCTYPE html>
<html>

<head>
  <link rel = "stylesheet" href = "style.css">
</head>

<body>
<table class = "DummyObject" style = "line-height: 1.3; width: 100%; height: 100%; table-layout: fixed;">

    <tr>
        <td title = "" style = "word-wrap: break-word; font-weight; bold; text-alin: center; vertical-align: middle; font-family; Calibri; font-size: 10pt; font-style: normal; text-decoration: none; padding: 3px; color: rgb(0,0,0);">GO</td>
        </td>
    </tr>
</table>

</body>

</html>

Пробовали разные решения:

Путем обработки функций таблиц и получения строки таблицы, а также получения значения td

publi void HandlingTables(){
    String s = "";
    WebElement table= driver.findElement(By.xpath("//table[@class='DummyObject'])[30]"));
    List<WebElement> allRows= table.findElements(By.tagName("tr"));

    for(WebElement row: allRows){
        List<WebElement> Cells = row.findElements(By.tagName"td"));

            for(WebElement Cell: Cells){
                Cell.click();
            }
    }
}

По функциям клика:

@FindBy( locator = "xpath....")
public WebElement gobtn;

gobtn.waitForPresent(5000)
gobtn.click()

Используя JS нажмите:

gobtn.clickjs()

По экземпляру драйвера:

driver.findelement(By.xpath("")).click();
driver.findelement(By.linktext("GO")).click();

Используя класс Actions:

Actions ob=new Actions(driver) 
ob.moveToElement(gobtn).perform()
ob.click(gobtn).perform()

Автор: Sendkeys

gobtn.sendkeys(keys.ENTER);

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

Пожалуйста, дайте мне знать, где я ошибся или есть ли другой способ выполнить операцию щелчка?

Как можно щелкнуть элемент, на который нельзя щелкнуть мышью?

cruisepandey 14.04.2018 20:42

На реальной странице я могу щелкнуть по нему вручную, когда я проверил элемент через xpath, я увидел приведенный выше фрагмент кода.

sbk 14.04.2018 20:48

Тогда вы могли поделились неправильным HTML.

cruisepandey 14.04.2018 20:50

Я создал html-файл с предоставленным вами html-кодом, и я не могу щелкнуть по нему вручную.

cruisepandey 14.04.2018 20:51

Текст "Go" я нашел только в двух местах, аналогичный фрагмент html есть в обоих местах. Есть ли другой способ проверить?

sbk 14.04.2018 20:52

Это в IFRAME?

JeffC 14.04.2018 23:50
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
6
62
1

Ответы 1

Почему вы хотите щелкнуть элемент, не вызывающий клика?

Вы можете щелкнуть WebElement тогда и только тогда, когда он доступен для щелчка. Например, якорные теги, кнопки и т. д.

Ваш код:

driver.findelement(By.linktext("GO")).click();  

Не сработает, если "GO" не будет в ссылке, в основном между <a> and </a>

Сначала определите элементы, которые можно щелкнуть, затем попробуйте щелкнуть по ним.

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

sbk 14.04.2018 20:53

он открывается в браузере? У него есть URL?

cruisepandey 14.04.2018 20:54

Это внутренняя веб-страница, на которой я пытаюсь выполнить автоматическое тестирование.

sbk 14.04.2018 20:55

Что означает внутренняя веб-страница?

cruisepandey 14.04.2018 20:56

К нему нельзя получить доступ снаружи.

sbk 14.04.2018 20:56

затем поделитесь HTML, где вы когда-нибудь нашли два текста «GO»?

cruisepandey 14.04.2018 20:57

Это в деталях вопроса. Не могли бы вы заглянуть в тело HTML

sbk 14.04.2018 20:58

Да, я мог видеть текст «GO» только в одном месте, а именно <td>, на которое нельзя щелкнуть ни при каких обстоятельствах.

cruisepandey 14.04.2018 21:00

В обоих местах, где я мог видеть текст «Перейти», фрагмент html выглядит так же, как и выше. Но я могу щелкнуть по нему вручную и увидеть результат. Не могли бы вы предложить способ лучше отладки?

sbk 14.04.2018 21:08

найдите // кнопку или // на этой конкретной странице и проверьте, сколько элементов присутствует?

cruisepandey 14.04.2018 21:14

Таких элементов нет!

sbk 14.04.2018 21:23

Позвольте нам продолжить обсуждение в чате.

sbk 14.04.2018 21:23

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