2017-04-24 44 views
7

Korzystanie Python i Splinter obecnie, muszę dokładnie określić, jaki tekst, option1 kliknąć na kiedy opcja znajduje się na stronie:Python/Splinter: Jak znaleźć i wybrać opcję na stronie?

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

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

Ale jeśli option1 nie ma, jak mogę spaść z powrotem i wybrać dowolną następną dostępną opcję, zamiast ją definiować?

Czy można po prostu znaleźć opcję na stronie i wybrać pierwszą napotkaną dostępną opcję bez konieczności definiowania opcji?

Dziękuję z góry i będzie z pewnością upvote/zaakceptować odpowiedź

+0

Wiele lat temu użyłem biblioteki mechanicznej do zrobienia czegoś takiego. Moje umiejętności Pythona są teraz trochę zakurzone. –

+0

@ BurakKaanKöse Jeśli kiedykolwiek się obejrzysz, naprawdę to doceniam! –

Odpowiedz

3

Można uzyskać wszystkie opcje na stronie. Jeśli więc pierwsze wyszukiwanie dla option1 jest puste, można przejść do następnych dostępnych opcji.

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

Inline if w drugiej linii jest tam, ponieważ find_by_tag można również powrócić pustą listę, jeżeli nie ma możliwości w ogóle w tej stronie.

Metoda jest odpowiedzią na oba pytania, ponieważ można jej użyć jako rezerwowego lub zebrać wszystkie opcje naraz.