2012-07-20 18 views
12

का उपयोग कर सेलेनियम WebDriver से एक पेज में सभी सामग्री का चयन करने के Ctrl + A दबाने के लिए मैं कुंजीपटल से Ctrl +एक दबाकर सभी सामग्री का चयन करना चाहते हैं। मैंने निम्नलिखित कोड लिखा:कैसे जावा के साथ WebDriver का उपयोग करके जावा

Actions actionObj = new Actions(driver); 
actionObj.keyDown(Keys.CONTROL) 
     .sendKeys(Keys.chord("A")) 
     .keyUp(Keys.CONTROL) 
     .perform(); 

दुर्भाग्यवश, यह काम नहीं किया। मेरे वेबड्राइवर जावा कोड में क्या गलत है?

उत्तर

16

पूरे पृष्ठ का चयन करने के लिए:

driver.findElement(By.xpath("//body")).sendKeys(Keys.chord(Keys.CONTROL, "a")); 

cssSelector xpath से तेज है। तो यह सीएसएसपीएथ का उपयोग करके भी किया जा सकता है। नीचे तरीका है:

driver.findElement(By.cssSelector("body")).sendKeys(Keys.chord(Keys.CONTROL, "a")); 
+3

यह समाधान मेरे लिए लिनक्स पर क्रोम में काम नहीं करता है। कारण क्या हो सकता है? – yashaka

+1

मुझे 'विशेषता' त्रुटि मिलती है: टाइप ऑब्जेक्ट 'कुंजी' में किसी कारण के लिए कोई विशेषता नहीं है 'chord'' त्रुटि जब मैं तार का उपयोग करता हूं। कोई विचार लोग? – baltoro

+1

@ बाल्टुसज आप शायद गलत कुंजी का उपयोग कर रहे हैं। आपको org.openqa.selenium.Keys – Aura

12

आप Ctrl +एक कुंजी chord करने की कोशिश की है? नीचे दिए गए कोड मेरे मामले में काम कर रहा है:

element.sendKeys(Keys.chord(Keys.CONTROL, "a")); 
+0

हाँ, यह अच्छी तरह से काम कर रहा है। मैंने www.google.com का दौरा किया और मैंने Google टेक्स्ट बॉक्स का टेक्स्ट चुना: driver.findElement (By.id ("gbqfq"))। SendKeys (Keys.chord (Keys.Control, "a")); यह आपकी दिशा के अनुसार अच्छी तरह से काम कर रहा है ... धन्यवाद। मैं Google का पूरा पृष्ठ चुनना चाहता हूं। मैं उसे कैसे कर सकता हूँ? –

+0

मैंने अपने कुछ स्वचालित परीक्षणों में एक बग के कारण इसका उत्तर दिया ... मैंने एक सीएसएस चयनकर्ता का उपयोग किया जो उस पृष्ठ के तत्व का चयन कर रहा था जो एक इनपुट फ़ील्ड नहीं था (उदाहरण के लिए एक div, ... जब परीक्षण ने इस तत्व में CTRL + A भेजा था तो यह पूरे पृष्ठ का चयन समाप्त हो गया। –

+0

उपर्युक्त टिप्पणी को पूरक करते हुए, वेबड्राइवर आम तौर पर उपयोगकर्ता को सर्वोत्तम तरीके से अनुकरण करने की कोशिश करता है ... क्या हुआ जब यह एक तत्व को CTRL + A भेजा गया था जो इनपुट नहीं था तो क्या होगा यदि हम इसे मैन्युअल रूप से करते हैं (उस पृष्ठ पर कहीं भी क्लिक किया गया था जो इनपुट नहीं था और CTRL + A दबाया गया था)। –