2012-02-08 18 views
7

के साथ स्वत: पूर्ण परीक्षण मेरे पास एक टेक्स्ट बॉक्स है जिसमें मैं एक अक्षर टाइप करता हूं, यह परिणाम की एक सूची प्रदर्शित करता है (जैसे Google खोज)।सेलेनियम वेबड्राइवर

मैं जावा के साथ नवीनतम सेलेनियम वेबड्राइवर का उपयोग कर रहा हूं।

मैं चरणों में से प्रत्येक के बाद प्रतीक्षा जोड़ने के बाद भी इन काम के

sendKeys("s"), 

JavascriptLibrary jsLib = new JavascriptLibrary(); 

jsLib.callEmbeddedSelenium(driver, "doFireEvent", driver.findElement(By.id("assetTitle")), "onkeyup"); 

    jsLib.callEmbeddedSelenium(driver, "doFireEvent", driver.findElement(By.id("assetTitle")), "onblur"); 

    jsLib.callEmbeddedSelenium(driver, "doFireEvent", driver.findElement(By.id("assetTitle")), "onclick"); 

    jsLib.callEmbeddedSelenium(driver, "doFireEvent", driver.findElement(By.id("assetTitle")), "onmouseup"); 


driver.findElement(By.id("assetTitle")).sendKeys(Keys.ENTER); 

कोई भी कोशिश की है।

कोई सुझाव?

धन्यवाद।

अपडेट: -

WebDriver driver = new FirefoxDriver(); 
    driver.get("http://www.google.com"); 
    WebElement query = driver.findElement(By.name("q")); 
    query.sendKeys("s"); 
driver.findElement(By.xpath("//table[@class='gssb_m']/tbody/tr/td/div/table/tbody/tr/td/span")).click(); 
    driver.findElement(By.name("btnG")).click(); 

अद्यतन 2: -

WebDriver driver = new FirefoxDriver(); 
    driver.get("http://www.kayak.com/"); 
    WebElement query = driver.findElement(By.name("destination")); 
    query.sendKeys("s"); 

अद्यतन 3: - मैं सेलेनियम 1 के साथ की कोशिश की और fireevent पद्धति के रूप में 'keydown' पैरामीटर पारित करके काम करता है। यह अब के लिए एक अस्थायी कामकाज होना चाहिए।

WebDriver driver = new FirefoxDriver(); 
    driver.get("http://www.kayak.com/"); 
    DefaultSelenium sel = new WebDriverBackedSelenium(driver,"http://www.kayak.com/"); 

    sel.type("//input[@id='destination']", "s"); 
    sel.fireEvent("//input[@id='destination']", "keydown"); 
+0

क्या आप अपना प्रश्न एक उदाहरण कोड के साथ अपडेट कर सकते हैं जो Google खोज फ़ील्ड के साथ काम करता है? – djangofan

+0

मैंने नमूना गूगल खोज कोड जोड़ा है। हालांकि अंतिम चरण की आवश्यकता नहीं है क्योंकि Google स्वचालित रूप से खोज परिणाम लाता है। लेकिन अगर आप kayak.com के लिए प्रयास करते हैं तो समान कोड हवाई अड्डे की खोज के लिए काम नहीं करेगा। – user1198308

+0

कयाक नमूना जोड़ा गया। कुंजी भेजकर, हमें पत्र एस से शुरू होने वाले हवाई अड्डे देखना चाहिए। – user1198308

उत्तर

0

यह अब के लिए एक अस्थायी कामकाज होना चाहिए।

WebDriver driver = new FirefoxDriver(); 
    driver.get("http://www.kayak.com/"); 
    DefaultSelenium sel = new WebDriverBackedSelenium(driver,"http://www.kayak.com/"); 

    sel.type("//input[@id='destination']", "s"); 
    sel.fireEvent("//input[@id='destination']", "keydown"); 
1

मेरा मानना ​​है कि आप परीक्षण कर रहे हैं स्वतः-सुझाव यहाँ (नहीं स्वत: पूर्ण)

कदम मैं पालन -

  1. इनपुट क्षेत्र में सुझाव आप पर
  2. क्लिक करें कुछ दर्ज चुनना चाहते हैं। (आप फ़ायरपैथ, क्रोम इत्यादि जैसे फ़ायरबग जैसे कुछ टूल्स का उपयोग करके एक्सपैथ पा सकते हैं)
  3. इनपुट फ़ील्ड में टेक्स्ट सत्यापित करें जैसा कि अपेक्षित है।
2

मुझे इसके बारे में एक समाधान मिला। मेरे समस्या थी:

  1. सेलेनियम
  2. स्वतः-सुझाव क्षेत्र का मिलान नहीं हुआ विकल्प के साथ एक साथ प्रकट होता है
  3. फिर सेलेनियम स्वतः-सुझाव ड्रॉप-डाउन खुला छोड़ दिया एक स्वत: सुझाव है कि स्थान क्षेत्र के लिए इनपुट 'Mandaluyong' मिलान किए गए विकल्प का चयन नहीं कर रहा है।

मैं क्या किया था:

 driver.findElement(By.name("fromLocation")).sendKeys("Mandaluyong"); 
     driver.findElement(By.name("fromLocation")).sendKeys(Keys.TAB); 

इसका कारण यह है एक मैनुअल परीक्षण पर, जब मैं टैब कुंजी प्रेस करने की कोशिश, दो बातें प्रणाली द्वारा किया गया:

  1. की पसंद स्वतः-सुझाव ड्रॉप-डाउन
  2. बंद कर देता है स्वतः-सुझाव ड्रॉप-डाउन
से मेल नहीं खाते विकल्प

उम्मीद है कि यह मदद करता है।

संबंधित मुद्दे