2013-01-16 31 views
5

का उपयोग कर फेसबुक की तरह बटन पर क्लिक करने के लिए मैं वेबड्राइवर का उपयोग कर फेसबुक की तरह बटन पर क्लिक करने की कोशिश कर रहा हूं। आप बटन at this page की तरह एक उदाहरण देख सकते हैं।वेबड्राइवर

स्विच करने के बाद iframe पर मैं कोशिश की है:

page.execute_script("document.querySelector('.pluginConnectButton > div:first-child button').click()") 

यह स्क्रिप्ट आइफ्रेम छोड़ने के बाद भी Firebug और Chrome डेवलपर टूल में काम करता है।

लेकिन यह FirefoxDriver और ChromeDriver में काम नहीं करता मैं इस बटन Webdriver का उपयोग कर कैसे क्लिक कर सकते हैं

(स्क्रिप्ट गुजरता है लेकिन बटन पर क्लिक करने के लिए बदल नहीं है)?

+0

आप काम कर उदाहरण दिखा सकते हैं? –

+0

@MurtazaHussain [इस पृष्ठ] पर बटन की तरह काम कर रहा है (http://developers.facebook.com/docs/reference/plugins/like/)। मुझे किसी अन्य पृष्ठ पर बटन क्लिक करने की आवश्यकता है लेकिन बटन समान हैं। –

+0

मैं इसे वॉटर-वेबड्राइवर में काम करने में सक्षम था, लेकिन मुझे इसे क्लिक करने से पहले बटन के लिए माउसओवर ईवेंट ट्रिगर करना पड़ा। दुर्भाग्य से मैं यह नहीं समझ सका कि कैपिबारा या सेलेनियम-वेबड्राइवर में इसे दोहराना कैसे है। फेसबुक भी वेबड्राइवर के उपयोग की जांच कर रहा है जैसा कि आप आईफ्रेम में देख सकते हैं कि यह कुछ वेबड्राइवर विशेषता को सत्य के बराबर दिखाई देगा। –

उत्तर

4

हालांकि यह मेरे लिए काम करता है यह भंगुर लगता है। आईफ्रेम की आईडी प्राप्त करने के लिए मुझे कुछ जावास्क्रिप्ट का उपयोग करना पड़ा क्योंकि एफबी प्रत्येक पृष्ठ लोड पर आईडी बदलता है। सौभाग्य से वे iframe की कक्षा नहीं बदल रहे हैं।

id = page.evaluate_script("$('.fb_ltr').attr('id');") 
within_frame(id) do 
    page.first(:css, '.pluginButton').click 
end 
0

यह आपके लिए काम करने के लिए।

if(driver.findElement(By.cssSelector("BODY")).getText().matches("^[\\s\\S]*Like[\\s\\S]*$")== true) { 
driver.findElement(By.xpath("//form[@id='u_0_1']/div/div/div/button")).click(); 
} 
else{ 
System.out.println("Unable to click Like button on page"); 
} 
0

मैं पेज-ऑब्जेक्ट मणि का उपयोग कर रहा हूं। यहां अमेरिकन प्लान बटन की तरह क्लिक करने के लिए मेरा तरीका है:

in_frame(:class =>"fb_ltr") do |frame| 
    button(:fb_btn, :css => "#facebook div.pluginButton.pluginButtonSmall.pluginButtonInline.pluginConnectButtonDisconnected button" , :frame => frame) 
    end 

...

fb_btn_element.when_present.click