वहाँ सेलेनियम में कोई isTextPresent
2 (WebDriver)सेलेनियम 2 (WebDriver) में सेलेनियम 1 (सेलेनियम आर सी) में isTextPresent के समतुल्य
WebDriver के साथ एक पृष्ठ पर कुछ पाठ के अस्तित्व पर जोर करने के लिए सही तरीका क्या है क्या है?
वहाँ सेलेनियम में कोई isTextPresent
2 (WebDriver)सेलेनियम 2 (WebDriver) में सेलेनियम 1 (सेलेनियम आर सी) में isTextPresent के समतुल्य
WebDriver के साथ एक पृष्ठ पर कुछ पाठ के अस्तित्व पर जोर करने के लिए सही तरीका क्या है क्या है?
मैं सामान्य रूप से की तर्ज पर कुछ करना:
assertEquals(driver.getPageSource().contains("sometext"), true);
assertTrue(driver.getPageSource().contains("sometext"));
मैं जानता हूँ कि यह एक सा पुराना है, लेकिन मैं एक अच्छा जवाब मिला:
: Selenium 2.0 Web Driver: implementation of isTextPresentअजगर में, इस तरह दिखता है
def is_text_present(self, text):
try: el = self.driver.find_element_by_tag_name("body")
except NoSuchElementException, e: return False
return text in el.text
या यदि आप वास्तव में वेबलेमेंट की टेक्स्ट सामग्री को देखना चाहते हैं तो आप कुछ ऐसा कर सकते हैं:
assertEquals(getMyWebElement().getText(), "Expected text");
पृष्ठ स्रोत HTML टैग जो आपके खोज लेख को तोड़ने और मिथ्या नकारात्मक हो सकती हैं। मैंने पाया कि यह समाधान सेलेनियम आरसी की isTextPresent API की तरह काम करता है।
WebDriver driver = new FirefoxDriver(); //or some other driver
driver.findElement(By.tagName("body")).getText().contains("Some text to search")
getText कर रहा है और उसके बाद इसमें प्रदर्शन व्यापार-बंद है। आप अधिक विशिष्ट वेबलेमेंट का उपयोग कर खोज पेड़ को कम करना चाहते हैं।
Selenium2 जावा कोड
public boolean isTextPresent(String str)
{
WebElement bodyElement = driver.findElement(By.tagName("body"));
return bodyElement.getText().contains(str);
}
@Test
public void testText() throws Exception {
assertTrue(isTextPresent("Some Text to search"));
}
मैं निम्न विधि लिखा है:
assertTrue(isTextPresent("some text"));
:
public boolean isTextPresent(String text){
try{
boolean b = driver.getPageSource().contains(text);
return b;
}
catch(Exception e){
return false;
}
}
उपरोक्त विधि नीचे के रूप में कहा जाता है
यह अच्छी तरह से काम कर रहा है।
assertTrue (बूलियन) और अन्य assert विधियां जुनीट से हैं? मुझे लगता है कि ये डिफ़ॉल्ट जावा पैकेज के साथ नहीं हैं। – MKod
क्या आपको नहीं लगता कि "driver.getPageSource() में प्रदर्शन समस्या होगी। (टेक्स्ट)"। मुझे लगता है कि यह पृष्ठ स्रोत के पूरे बहुत सारे पाठ को खोजेगा। यदि यह एक विशेष पाठ खोजने का एकमात्र तरीका है तो आप समय व्यतीत और कोड प्रदर्शन को कैसे औचित्य देते हैं। इस तरह के एक अच्छा सवाल पोस्ट करने के लिए धन्यवाद। – MKod
@MKod: मैं आपसे सहमत हूं। यह प्रदर्शन समस्या का कारण बन सकता है क्योंकि यह किसी पृष्ठ के पूरे पाठ को खोजता है। इसे एक वैकल्पिक तरीके खोजने की जरूरत है। मुझे लगता है कि WebDriver दिन में दिन में सुधार होगा –
परीक्षण ब्राउज़र के रूप में फ़ायरफ़ॉक्स का उपयोग करते हुए रूबी (एक शुरुआती दृष्टिकोण) में पाठ मौजूद है या नहीं।
java - jar C:\Users\wmj\Downloads\selenium-server-standalone-2.25.0.jar
2) आप रूबी स्थापित करने की आवश्यकता है, और उसके बिन फ़ोल्डर में, अतिरिक्त जवाहरात स्थापित करने के लिए चलाने के आदेश:
1) आप डाउनलोड करने और की तरह कुछ के साथ सेलेनियम सर्वर जार फ़ाइल को चलाने के निश्चित रूप से की जरूरत है:
gem install selenium-webdriver
gem install test-unit
3) एक फ़ाइल परीक्षण it.rb युक्त बनाने के लिए:
require "selenium-webdriver"
require "test/unit"
class TestIt < Test::Unit::TestCase
def setup
@driver = Selenium::WebDriver.for :firefox
@base_url = "http://www.yoursitehere.com"
@driver.manage.timeouts.implicit_wait = 30
@verification_errors = []
@wait = Selenium::WebDriver::Wait.new :timeout => 10
end
def teardown
@driver.quit
assert_equal [], @verification_errors
end
def element_present?(how, what)
@driver.find_element(how, what)
true
rescue Selenium::WebDriver::Error::NoSuchElementError
false
end
def verify(&blk)
yield
rescue Test::Unit::AssertionFailedError => ex
@verification_errors << ex
end
def test_simple
@driver.get(@base_url + "/")
# simulate a click on a span that is contained in a "a href" link
@driver.find_element(:css, "#linkLogin > span").click
# we clear username textbox
@driver.find_element(:id, "UserName").clear
# we enter username
@driver.find_element(:id, "UserName").send_keys "bozo"
# we clear password
@driver.find_element(:id, "Password").clear
# we enter password
@driver.find_element(:id, "Password").send_keys "123456"
# we click on a button where its css is named as "btn"
@driver.find_element(:css, "input.btn").click
# you can wait for page to load, to check if text "My account" is present in body tag
assert_nothing_raised do
@wait.until { @driver.find_element(:tag_name=>"body").text.include? "My account" }
end
# or you can use direct assertion to check if text "My account" is present in body tag
assert(@driver.find_element(:tag_name => "body").text.include?("My account"),"My account text check!")
@driver.find_element(:css, "input.btn").click
end
end
4) को चलाने के गहरे लाल रंग का:
ruby test-it.rb
निम्नलिखित कोड WebDriver में जावा का उपयोग कर काम करना चाहिए:
assertTrue(driver.getPageSource().contains("Welcome Ripon Al Wasim"));
assertTrue(driver.findElement(By.id("widget_205_after_login")).getText().matches("^[\\s\\S]*Welcome ripon[\\s\\S]*$"));
यह अच्छा soltion है, लेकिन यह यह सटीक बराबर नहीं है लगता है - टिप्पणी यहाँ देखो: http: // rostislav- matl.blogspot.com/2011/03/moving-to-selenium-2-on-webdriver-part।एचटीएमएल –