2015-05-05 3 views
-1

Я использую Selenium Java WebDriver. Я пытаюсь проверить, есть ли какой-либо текст на странице.Проверьте, содержит ли страница текст, но точный текст

Я делаю это:

assertTrue(driver.getPageSource().contains("Hello World")); 

НО я просто понимаю, что в моей странице может текст «Hello World 2» также присутствовать. В этом случае метод выше вернет True, но он должен быть фактически False. Мне нужен аналогичный метод, который проверяет наличие точного текста «Hello World».

Кто-нибудь знает что-то, что я мог бы сделать?

<div class="x-grid3-cell-inner x-grid3-col-roles" ext:qtip= 
"CAD-Approver">CAD-Approver<input type="hidden" name= 
"ap20hiddenRoleNames" value= 
"CAD-APPROVER,"></div> 

Мне нужно найти текст = CAD-утверждающего

Большое спасибо Пабло

+0

'assertTrue (driver.getPageSource(). Содержит (« Hello World 2 ») == false);' что-то вроде этого? –

+2

Не могли бы вы более точно объяснить, что это за условия? Потому что, если присутствует «Hello World 2», точное слово «Hello World» также присутствует, за которым следует что-то другое. Ваш вопрос не совсем ясен. Каковы ваши слова, ограниченные? –

+0

Лучше использовать функцию java .equals(). –

ответ

1

Вместо проверки источника всей страницы (который может быть много!), Почему бы вам не сузите свои критерии, найдя текст в веб-элементе (например, <text id="text-Hello-World">), а затем выполните поиск по этому вопросу?

например.

String text = webDriver.findElement(by.Id("text-Hello-World")).getText(); 
assertTrue(text.equals("Hello World")); 

Вот краткое руководство мало, чтобы быть в состоянии сузить свой поиск, похожий на моем примере: https://loadfocus.com/blog/2013/09/how-to-locate-web-elements-with-selenium-webdriver/

Примечание: Я не знаю, Java, так что не может скомпилировать!

Update:

Есть несколько способов сделать это:

List<WebElement> elements = webDriver.findElements(by.tagName("div")); 
for(Iterator<WebElement> i = elements.iterator(); i.hasNext();) { 

    string text = i.getText(); 

    if(text.equals("CAD-Approver")) 
    { 
    //Do something 
    } 
} 

Или вы могли бы использовать XPath поиск, например, //div[contains(.,'CAD-APPROVER')]

+0

Здесь текст не является переменным введите эту строку, чтобы эта строка не работала..assertTrue (text.equals («Hello World»)); –

+0

@HelpingHands Как я уже сказал, я не знаю Java, обновил свой ответ –

+1

Я вижу, я только что обновил ваш ответ. :) –

0

Использование. равно() функция Java, чтобы сравнить свои строки:

String text1 = webDriver.findElement(by.Id("your text id")).getText(); 

String text2 = "hello world" 

if(text1.equals(text2)) 
{ 

    //true 
} 
else 
{ 
    //false 

} 

Так как указано выше примера хранить заранее заданную строку в переменной TEXT2, а затем сопоставить его со значением text1.

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