2014-11-20 3 views
1

В кадре я работаю, у меня есть следующий элемент:Селен WebDriver Поиск элементов с помощью частичного имени класса

<div class="x-grid3-cell-inner x-grid3-col-expRepCol"> New session from client IP 192.168.5.3 (ST=/CC=/C=) at VIP 192.168.5.2 Listener /Common/Tomcat (Reputation=Unknown)</div> 

Как и многие другие подобные элементы. Я пытаюсь найти этот элемент с помощью частичного текста имя и щелкните на нем следующий код:

String expectedText = "New session from client IP"; 
driver.findElement(By.className("div[class*='"+expectedText+"']")).click(); 

И я также попытался с CSSSelector:

String expectedText = "New session from client IP"; 
driver.findElement(By.cssSelector("div[class*='"+expectedText+"']")).click(); 

Но WebDriver продолжает бросать исключение заявив, что невозможно чтобы найти этот элемент. Любые предложения относительно того, что может быть проблемой?

ответ

2

By.className ищет класс с введенным именем.

By.cssSelector ищет соответствие для введенного вами селектора.

Что вы пытаетесь, чтобы подгонять текст div к class, что не будет работать.

Вы можете попробовать что-то вроде этого:

driver.findElement(By.xpath("//div[contains(text(),'"+expectedText+"')]")).click(); 
+0

Вы только что забыли // перед div, но это сработало, как только я сделал исправление! Спасибо! – user2150250

+0

@ user2150250 Ах, мужик, вы правы. Извините. Исправлено. – Richard

+0

Нет проблем. Это не похоже на то, что у вас есть источник страниц для работы с такими маленькими опечатками, которые понятны, когда вы не можете проверить. – user2150250

-1

Я считаю, что это будет работать: driver.findElement (By.className ("х-Таблица3-клеточно-внутренняя х-Таблица3-Col-expRepCol") .click();

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