2013-07-28 14 views
13

Tôi đang cố thay đổi kiểu CSS của một phần tử (ví dụ: từ "visibility: hidden;" thành "visibility: visible;") bằng selenium .execute_script. (bất kỳ phương pháp nào khác thông qua selenium + python sẽ được chấp nhận một cách duyên dáng).Selen (với python) cách sửa đổi kiểu phần tử css

mã của tôi:

driver = webdriver.Firefox() 
driver.get("http://www.example.com") 

elem = driver.find_element_by_id('copy_link') 

elem.execute_script( area of my problem) 

những gì tôi cần phải làm để chơi với CSS của trang web?

Trả lời

2

Chuỗi trong execute_script() là mã JS bạn muốn chạy (docs).

Nếu bạn sử dụng jQuery nó có thể được chỉ

driver.execute_script("$('#copy_link').css('visibility', 'visible');") 
+0

tôi đã thử, đã nhận được WebDriverException: Thông báo: u ' '; Stacktrace :. có vẻ như yếu tố này chỉ được kích hoạt (hoặc hiển thị) trên một 'con chuột di chuột' ... –

+0

chính xác là liên kết sao chép? –

10

Dưới đây là một ví dụ mà không sử dụng bất kỳ jQuery. Nó sẽ ẩn logo của Google.

from selenium import webdriver 
driver = webdriver.Firefox() 
driver.get("http://www.google.com") 
driver.execute_script("document.getElementById('lga').style.display = 'none';") 

Các ý tưởng tương tự có thể được sử dụng để hiển thị một yếu tố tiềm ẩn bằng cách thiết lập .style.display để "block", ví dụ.

+0

cảm ơn, tôi đã thử nó chỉ để nhận được lỗi sau: WebDriverException: Thông báo: u'document.getElementById (...) là null '; –

+0

@ user2627775, Bạn có thể xác nhận rằng phần tử thực sự tồn tại và không được bao bọc trong một '