2011-10-17 39 views
49

Tôi hoàn toàn mới với Selenium. Tôi muốn thực thi đoạn mã javascript trong đoạn mã sau (như đã nhận xét trong mã), nhưng không thể làm như vậy. Hãy giúp tôi.Chạy javascript trong Selenium bằng cách sử dụng Python

from selenium import webdriver 
import selenium 
from selenium.common.exceptions import NoSuchElementException 
from selenium.webdriver.common.keys import Keys 
import time 

patch = raw_input("Enter patch number\n") 
rel = raw_input("Enter release\n") 
plat = raw_input("Enter port\n") 

browser = webdriver.Firefox() 

browser.get("xxxxxxxxxxxxxxxxx") 

pdtfamily = browser.find_element_by_id("prodFamilyID") 
pdtfamily.send_keys("Database & Tools" + Keys.TAB) 
time.sleep(5) 

pdt = browser.find_element_by_id("productID") 
pdt.send_keys("Intelligent Agent" + Keys.TAB) 
time.sleep(5) 

pdt1 = browser.find_element_by_id("patchCacheChkBxID") 
pdt1.send_keys(Keys.SPACE) 
time.sleep(5) 

pdt7 = browser.find_element_by_id("M__Idf") 
pdt7.send_keys(plat) 

pdt8 = browser.find_element_by_id("M__Idg") 
pdt8.send_keys("American English") 

# Here I want to execute this javascript - "submitForm('patchCacheAdd',1,{'event':'ok'});return false" 

browser.close() 

Nếu tôi sử dụng -

selenium.GetEval("submitForm('patchCacheAdd',1,{'event':'ok'});return false") 

nó lỗi ra như -

AttributeError: 'module' object has no attribute 'GetEval'I 

Trả lời

78

Hãy thử browser.execute_script thay vì selenium.GetEval.

Xem this answer ví dụ.

30

Sử dụng execute_script, đây là một ví dụ python:

driver = webdriver.Firefox() 

driver.get("http://stackoverflow.com/questions/7794087/running-javascript-in-selenium-using-python") 
driver.execute_script("document.getElementsByClassName('comment-user')[0].click()") 
+0

Một mẫu comment để kiểm tra mã trên –

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