Нахождение одноуровневой ссылки при использовании watir-WebDriver - PullRequest
2 голосов
/ 25 февраля 2011

Я использую watir-WebDriver для автоматизации тестирования веб-сайтов.Мне нужно перейти по ссылке «Брат».

выглядит следующим образом

Что-то> Что-то 2> название текущей страницы (ссылка1) (ссылка2) (текст1)

У меня естьИдентификатор класса text1, и я должен вернуться к Something 2, нажав на ссылку2.

Как мне это получить.

Ответы [ 5 ]

1 голос
/ 21 марта 2013

Если вы можете найти общего родителя для двух братьев и сестер, вы можете перейти к этому родителю, а затем выбрать элемент из этой точки, используя что-то вроде этого:

исходный html:

<tr>
  <th>No. of films</th>
  <td>7</th>
</tr>

scrape (@b - объект браузера)

@b.th(:text => "No. of films").parent.tds.first.text
#=> 7
1 голос
/ 25 февраля 2011

Я думаю, что вы можете получить ссылку на одноуровневый элемент elements_by_xpath.

пример


Источник HTML:

bar текст


сценарий watir-webdriver:

p (: class, 'baz'). elements_by_xpath ('previousing-sibling :: *') [- 1]

0 голосов
/ 25 июля 2016

Как и во всем предыдущем ответе, у вас должна быть контрольная точка над этой иерархией. Тогда browser.p(:id, 'known').parent.links[1].click сделает эту работу. Но если вы действительно этого не делаете, попробуйте этот безнадежно простой подход:

browser.link(:text => 'Something 2').click

0 голосов
/ 16 марта 2011

Если я правильно понимаю, у вас есть какой-то элемент контейнера, например, как div, и внутри него две ссылки и какой-то текст.Что не ясно, так это если текст принадлежит внешнему контейнеру или находится внутри собственного контейнера.Учитывая, что вы говорите, что у вас есть 'classid' (это класс? Или идентификатор?) Текста, я собираюсь предположить, что он находится в его собственном элементе контейнера.

В этом случае

browser.element(:class, 'value').parent.link(:index, 2).click

Это лучшее, что я могу сделать без реального образца HTML, более четкой модели DOM

0 голосов
/ 25 февраля 2011

Если (text1) является потомком (link2), вы можете попробовать:

(text1) .parent

...