2017-04-24 4 views
7

अजगर और खंडित का उपयोग करना, वर्तमान में, मैं एक विकल्प के लिए एक पेज पर पाया जाता है जब पर क्लिक करने के, वास्तव में क्या पाठ को परिभाषित करने के option1 की जरूरत है:पायथन/स्प्लिंटर: किसी साइट पर कोई विकल्प कैसे ढूंढें और चुनें?

from splinter import Browser 
browser = Browser('chrome') 

browser.find_option_by_text(option1).first.click() 

लेकिन अगर option1 वहाँ नहीं है, मैं कैसे वापस गिर सकता है और इसे परिभाषित करने के बजाय उपलब्ध कोई भी अगला विकल्प चुनें?

और क्या यह पृष्ठ पर एक विकल्प ढूंढना संभव है और विकल्प को परिभाषित किए बिना किसी भी पहले उपलब्ध विकल्प का चयन करना संभव है?

अग्रिम रूप से धन्यवाद और वोट दें करने के लिए सुनिश्चित हो जाएगा/उत्तर

+0

साल पहले मैंने ऐसी चीज करने के लिए मशीनी लाइब्रेरी का उपयोग किया था। यद्यपि मेरे अजगर कौशल अभी थोड़ा धूल हैं। –

+0

@ बुरककनकोस यदि आप कभी भी इसके आसपास जाते हैं, तो वास्तव में इसकी सराहना करेंगे! –

उत्तर

3

आप पृष्ठ में सभी विकल्पों मिल सकता है स्वीकार करते हैं। तो यदि option1 के लिए पहली खोज खाली है, तो आप उपलब्ध अगले विकल्पों पर फिर से शुरू कर सकते हैं।

selected_option = browser.find_option_by_text(option1) or browser.find_by_tag('option') 
selected_option = selected_option.first if selected_option else None 

दूसरी पंक्ति में इनलाइन if है क्योंकि find_by_tag भी एक खाली सूची लौट सकते हैं अगर कोई विकल्प बिल्कुल उस पृष्ठ में हैं।

find_by_tag विधि दोनों प्रश्नों के लिए प्रतिक्रिया है, क्योंकि आप इसे फ़ॉलबैक के रूप में उपयोग कर सकते हैं या एक ही समय में सभी विकल्पों को एकत्र कर सकते हैं।

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