Ниже приведен фиктивный источник 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);
Примечание: В консоли не возникает ошибок, в консоли показано, что действие выполнено, но в пользовательском интерфейсе это не отражается, и результирующее действие не выполняется.
Пожалуйста, дайте мне знать, где я ошибся или есть ли другой способ выполнить операцию щелчка?
На реальной странице я могу щелкнуть по нему вручную, когда я проверил элемент через xpath, я увидел приведенный выше фрагмент кода.
Тогда вы могли поделились неправильным HTML.
Я создал html-файл с предоставленным вами html-кодом, и я не могу щелкнуть по нему вручную.
Текст "Go" я нашел только в двух местах, аналогичный фрагмент html есть в обоих местах. Есть ли другой способ проверить?
Это в IFRAME?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Почему вы хотите щелкнуть элемент, не вызывающий клика?
Вы можете щелкнуть WebElement тогда и только тогда, когда он доступен для щелчка. Например, якорные теги, кнопки и т. д.
Ваш код:
driver.findelement(By.linktext("GO")).click();
Не сработает, если "GO" не будет в ссылке, в основном между <a> and </a>
Сначала определите элементы, которые можно щелкнуть, затем попробуйте щелкнуть по ним.
Я могу щелкнуть страницу вручную, и все действия будут выполнены. Кроме того, страница не похожа на веб-страницу, она выглядит как лист Excel.
он открывается в браузере? У него есть URL?
Это внутренняя веб-страница, на которой я пытаюсь выполнить автоматическое тестирование.
Что означает внутренняя веб-страница?
К нему нельзя получить доступ снаружи.
затем поделитесь HTML, где вы когда-нибудь нашли два текста «GO»?
Это в деталях вопроса. Не могли бы вы заглянуть в тело HTML
Да, я мог видеть текст «GO» только в одном месте, а именно <td>, на которое нельзя щелкнуть ни при каких обстоятельствах.
В обоих местах, где я мог видеть текст «Перейти», фрагмент html выглядит так же, как и выше. Но я могу щелкнуть по нему вручную и увидеть результат. Не могли бы вы предложить способ лучше отладки?
найдите // кнопку или // на этой конкретной странице и проверьте, сколько элементов присутствует?
Таких элементов нет!
Позвольте нам продолжить обсуждение в чате.
Как можно щелкнуть элемент, на который нельзя щелкнуть мышью?