Невозможно найти элемент в Selenium Java - PullRequest
0 голосов
/ 04 июля 2019

[[Img1 ] [Img2 [Img3] Я пытался получить элемент по тексту ссылки.Но становится ниже Исключения.Исключение в потоке "main" org.openqa.selenium.NoSuchElementException: нет такого элемента: невозможно найти элемент: {"method": "текст ссылки", "селектор": "CFDSDSR"}

Я попробовал следующеепутем переключения на фрейм, но затем он дал фрейм, не найденный, но фрейм существует:

driver.switchTo().frame("main");
driver1.switchTo().defaultContent();

XPath:

/ html / body / table / tbody / tr / td/ форма / таблица 3 / TBODY / TR / TD / стол / TBODY / TR 3 / TD / стол / TBODY / тр [6] / тд 3 / a

Код: Попробуйте 1:

driver.findElement(By.linkText("CFDSDSR")).click();

Попробуйте 2:

driver.findElement(By.xpath("//html/body/table/tbody/tr/td/form/table[1]/tbody/tr/td/table/tbody/tr[2]/td/table/tbody/tr[6]/td[1]/a")).click();

HTML:

<frame name="main" marginheight="4" marginwidth="4" src="../utilityintro.jsp?title=Miscellaneous Utilities">
..........
..........
<a href="javascript:openpopup('CFDSDSR', '15003', 'COMPLETE')" class="lbcontext">CFDSDSR</a>
..........

..........
</frame>

Пробное хранениевсе элементы из этого фрейма в ArrayList, даже те, которые не работали.

Ожидается: он должен выбрать этот элемент и после нажатия должно открыться всплывающее окно.Фактически: NoSuchElementException

Ответы [ 3 ]

1 голос
/ 04 июля 2019

Я был успешным с By.PartialLinkText ("xyz"); попытайся.

driver.findElement(By.PartialLinkText("CFDSDSR");

надеюсь, что ваша проблема будет решена

0 голосов
/ 04 июля 2019

Я отвечаю на свой вопрос здесь и сейчас. После того, как я много покопался в коде, я заставил его работать, добавив еще одну строку в коде. Перед driver.switchTo (). Frame («основной»); Я добавил driver.switchTo (). DefaultContent (); и это дало мне ожидаемый результат. :)

0 голосов
/ 04 июля 2019

Классическая проблема, клики по a href не работают, если это действие JavaScript. Вам нужен клик по javascrit

driver.waitUntil(ExpectedConditions.elementToBeClickable(By.xpath("..."));
((JavascriptExecutor) driver)
                .executeScript("document.evaluate(\"" + "...").replace("\"", "\\\"") + "\", document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null).snapshotItem(0).click();");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...