2017-04-24 18 views
7

Sử dụng Python và Splinter, hiện nay, tôi cần phải xác định văn bản chính xác những gì, option1 bấm vào khi một tùy chọn được tìm thấy trên một trang:Python/Splinter: Cách tìm và chọn tùy chọn trên trang web?

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

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

Nhưng nếu option1 là không có, làm thế nào tôi có thể rơi trở lại và chọn bất kỳ tùy chọn tiếp theo nào có sẵn thay vì phải xác định nó?

Và bạn có thể tìm thấy tùy chọn trên trang và chọn bất kỳ tùy chọn sẵn có, đầu tiên nào có thể gặp phải mà không phải xác định tùy chọn?

Cảm ơn bạn trước và sẽ chắc chắn trả lời/chấp nhận câu trả lời

+0

Năm trước, tôi đã sử dụng cơ giới hóa thư viện để thực hiện việc đó. Kỹ năng trăn của tôi là một chút bụi ngay bây giờ. –

+0

@ BurakKaanKöse Nếu bạn bao giờ đi xung quanh nó, sẽ thực sự đánh giá cao nó! –

Trả lời

3

Bạn có thể nhận được tất cả các tùy chọn trong trang. Vì vậy, nếu tìm kiếm đầu tiên cho option1 bị trống, bạn có thể tiếp tục với các tùy chọn tiếp theo có sẵn.

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

Các inline if trong dòng thứ hai là có vì find_by_tag cũng có thể trả về một danh sách trống nếu không có tùy chọn ở tất cả các trang đó.

Phương thức find_by_tag là câu trả lời cho cả hai câu hỏi, vì bạn có thể sử dụng nó làm dự phòng hoặc thu thập tất cả các tùy chọn cùng một lúc.

Các vấn đề liên quan