Как найти текстовое местоположение с помощью Selenium? - PullRequest
1 голос
/ 25 августа 2010

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

Большая проблема в том, что я хочу нажать на этот текст. Проблема в том, что я не могу нажать на этот текст, который, я думаю, находится в каком-то элементе управления, встроенном на страницу. Таким образом, он не обнаруживается как ссылка, кнопка или опция и т. Д. Однако мне нужно щелкнуть по нему, чтобы сделать выбор.

Есть мысли?

Ответы [ 4 ]

3 голосов
/ 05 августа 2011

Ваше решение xpath=//*[text()='hello'] будет щелкнуть первый кликабельный элемент с текстом «привет» в исходном коде.Если вы хотите быть более конкретным, вы можете добавить в xpath больше случаев, например:

xpath=//*[@id='exampleId']//*[text()='hello']

Теперь при этом будет щелкать элемент с текстом 'hello', найденный после некоторого элемента с идентификатором exampleId.

0 голосов
/ 13 декабря 2013

${x_axis}= Get Horizontal Position xpath=//*[text()="Log files"] Get Horizontal Position returns the position of 'Log files' wrt the left end(X-axis length).

позиция является целочисленным значением ... так что можно легко сравнивать.

0 голосов
/ 05 августа 2011

Xpath отлично подходит, и вы должны ответить выше. Однако я понял, что иногда Selenium не позволяет вам что-то нажимать, потому что он думает, что текст скрыт CSS

Пока у меня нет обходного пути для этого, и вместо нажатия кнопки я закрываю полностью все окно браузера.

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

File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
    File destination = new File("path/to/outputfiles/versionNumber.png");
    FileUtils.copyFile(scrFile, destination);
0 голосов
/ 25 августа 2010

Понял! Я не знаю ответа на вопрос, как найти место, но более важный момент - щелкнуть этот текст.

Я могу просто использовать локатор XPath в методе click, например: -

Click(xpath=//*[text()="hello"])

При этом будет щелкнуть элемент, имеющий текстовое значение «привет». В моем случае это уникально, поэтому достаточно конкретно.

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