Как я могу получить Browser.text.include?искать переменную?(используя Watir и Ruby) - PullRequest
1 голос
/ 18 июля 2011

Проблема, с которой я сталкиваюсь, заключается в том, что я не могу найти, как получить Bowser.text.include?искать значение textinclude, которое я дал ему ранее в программе.

Кажется, что он буквально ищет # {textinclude}, который явно отсутствует.

Это мой текущий код:


print( 'Enter your website: ' ) 

website = gets() 

puts( "Testing #{website}" )

print( 'What text do you want to find? ' ) 

textinclude = gets()

puts( "Finding #{textinclude}" )

require 'watir'

browser = Watir::IE.new

browser.goto (website)

if browser.text.include? " #{textinclude} "

print("#{textinclude} present")   

else

print("text not present")

end

Благодарим Вас за помощь.

Спасибо

Ответы [ 3 ]

1 голос
/ 18 июля 2011

Попробуйте добавить .chomp after gets (), чтобы удалить символы новой строки в строке для поиска

1 голос
/ 18 июля 2011

Это ваш точный код, вставленный из вашей программы?

Проверьте пробелы вокруг if browser.text.include? " #{textinclude} " и убедитесь, что они не мешают.Например, если искомое предложение на самом деле заканчивается fullstop, а не space, это может привести к тому, что include? вернет false в моем опыте.

Вам потребуется .chomp, такой как TapioСааринен сказал, в противном случае вы получите \n в конце вашего textinclude variable, удаление это первый шаг к возможности найти ваш текст.

Так что я бы попробовал это

text_include = gets.chomp
if browser.text.include?(text_include)
puts "Found it"
else 
puts "Didnt find it"
end

Если это не помогло, подумайте, где находится текст на странице.Если он находится в значении кнопки или где-то, что на самом деле не является text на странице, то text.include? не найдет его вообще.

Ps Я переименовал вашу переменную, чтобы я мог ее правильно прочитать:)

1 голос
/ 18 июля 2011

Попробуйте:

if browser.text.include?(textinclude)

вместо

if browser.text.include? " #{textinclude} "
...