2015-04-16 2 views
1

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

Примите следующие данные: У меня есть поисковое поле с типом вперед на сайте. В моей боковой панели у меня есть элемент, в котором я занимаюсь серфингом (называет его «Selenium»), но это не тот элемент, который меня интересует, я хочу узнать, доставляет ли мой поиск по принципу «вперед» ожидаемый результат при поиске "Селен".

<body> 
    <header> 
     <searchfield> 
     <searchresults> 
      <a .... >Selenium</a> 
     <searchresults> 
     </searchfield> 
    </header> 
    <aside> 
     ... 
     <a .... >Selenium</a> 
     ... 
    </aside> 
</body> 

Если я селеном WebDriver поиск по LinkText «Селен» он найдет обе записи, один на боковой панели, как как хорошо один в searchfield. Кроме того, я не могу дождаться searchresult с помощью команды WaitForVisible в linkText, поскольку Selenium найдет элемент на боковой панели и сделает вывод, что элемент задан.

Так что мой вопрос: «С селеном webdriver, как мне искать элемент в определенном регионе?»

ответ

1

С помощью этой проблемы я столкнулся с использованием Xpath. С этим я мог бы создать «области», где я хочу искать элемент. В качестве примера, я пошел от

html/body/div/aside/div[2]/ul/li 

в

//div[contains(@class,'coworkerwidget')]/ul/li 

Теперь код является гораздо более динамичным, и менее склонны к ошибкам, если наши ребята во внешнем интерфейсе редактировать что-то в будущем.

Что касается поиска, теперь я мог создать что-то вроде следующего кода

//div[contains(@class, 'searchfield')]//div[contains(@title, 'searchfield') and contains(., '" + searchword + "')]" 

Сначала мы указываем, что мы хотим, чтобы посмотреть в районе searchfield:

//div[contains(@class, 'searchfield')] 

Затем я могу установить некоторые больше критериев для результата Я хочу найти:

//div[contains(@class, 'title') and contains(., '" + searchword + "')] 

Некоторая литратура на предметы для дальнейшего чтения.

http://www.qaautomation.net/?p=388

http://www.w3schools.com/xsl/xpath_syntax.asp

Click a button with XPath containing partial id and title in Selenium IDE

Retrieve an xpath text contains using text()

+0

Вероятно, было бы лучше читать, если вы использовали ByChained. – djangofan

Смежные вопросы