2016-10-14 2 views
1

У меня есть веб-система. Я автоматизирую с использованием Java/Selenium Webdriver. У меня есть элемент, к которому я пытаюсь получить доступ. Он имеет составное имя класса. Я пробовал все решения, которые мне удалось найти здесь, и пока никто из них не работает.Selenium cssSelector работает в IDE, но не в Webdriver

Наиболее Предлагаемое решение выглядит следующим образом:

By elem = By.cssSelector("div.prdbox.saleshdr"); 
List<WebElement> elements = driver.findElements(elem); 
System.out.println("Number of Items found: "+elements.size()); 

Когда я проверить размер массива элементов он всегда равен нулю.

То, что я нахожу, однако, заключается в том, что когда я помещаю селекторную строку в Selenium IDE (2.9.1) и использую кнопку «Найти», он без проблем обнаруживает правильный веб-элемент.

Я не могу понять, почему он работает в IDE, но не в моем коде.

+0

убедитесь, что элемент присутствует до вызова 'findElements()'. вы можете сделать это, используя [явные ожидания] (http://www.seleniumhq.org/docs/04_webdriver_advanced.jsp#explicit-waits). – sircapsalot

+0

Ну цвет меня смущает. Я забыл проверить это. Это точно. Благодаря! –

ответ

0

Попробуйте выбрать элемент с помощью XPath? Раньше, когда я сталкивался с проблемами, пытающимися выбрать что-то с помощью cssSelector, я часто имел успех, когда вместо этого пытался использовать XPath.

0

Дайте некоторое время ожидания перед селектором, который вы принимаете.

driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); 
List<WebElement> elements = driver.findElements(By.cssSelector("div.prdbox.saleshdr")); 
System.out.println("Number of Items found: "+elements.size()); 

или попробуйте найти элементы с помощью Xpath или id.

List<WebElement> elements = driver.findElements(By.xpath("your xpath")); 

Надеется, что это поможет вам

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