xpath или css необходимы для отслеживания фрагмента HTML - PullRequest
0 голосов
/ 02 сентября 2011

После HTML-кода появляется всплывающее окно для добавления продукта.Попытка найти xpath или css, который будет работать в селене, который позволяет нажать кнопку «добавить» для добавления нового продукта.

Я попытался использовать этот xpath // div [18] / div [2] / div /Кнопка, которая работает только для одного сеанса.Когда вы закрываете браузер и снова открываете, вышеупомянутый xpath не работает.Итак, как мы можем написать такой xpath, который не должен передавать div [число] в этом случае div [18].

<div style="height: auto; min-height: 104px; width: auto;" class="dialog ui-dialog-content ui-widget-content">
<fieldset><legend>search</legend>
<div id="nameorids">
<input type="radio">name
<input type="radio">id
</fieldset>
<div style="clear: both; padding-top: 5px; float: right;"><button class="add">add</button></div></div>

Ответы [ 3 ]

0 голосов
/ 02 сентября 2011

Существует много разных XPath для одного и того же узла. В данном случае это единственная кнопка с классом «добавить»? В этом случае:

//button[contains(concat(' ', @class, ' '), ' add ')]

Получит только эту кнопку. Наличие всего лишь фрагмента HTML-кода не очень полезно.

Если у вас есть доступ к странице и вы можете запустить браузер Chrome, попробуйте мое расширение здесь . После установки перезапустите Chrome, затем щелкните правой кнопкой мыши на кнопке и выберите PsychoXPath -> Element (Short). Это попытается найти уникальный путь к этому элементу и скопировать его в буфер обмена, а также в консоль.

0 голосов
/ 03 сентября 2011

CSS будет button.add

selenium.click("css=button.add");
0 голосов
/ 02 сентября 2011

Прежде всего, этот HTML-код недопустим: div nameorids не закрывается до закрытия набора полей.Опечатка?

Если вы можете повлиять на HTML, попробуйте добавить атрибут id или class во внешний div, чтобы вы могли нацелить их с помощью селектора css.Например, если вы можете сделать HTML похожим на

<div id="foo" ...

, тогда вы можете использовать селектор #foo button.add.

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