2013-04-30 20 views
5

Tôi có thanh trượt sử dụng html5 trên đầu vào ví dụ:Làm cách nào để sử dụng selen để thay đổi giá trị của đầu vào [type = 'range']

<input id="sliderWidget" title="Slide me" type="range" min="1" max="1.6" step="0.3" value="1.3"> 

Tôi đã cố gắng sử dụng selen để thay đổi thanh trượt nhưng điều khiển hình ảnh thanh trượt truyền thống không làm việc cho tôi .... ví dụ

Action dragAndDrop = builder.dragAndDropBy(sliderWidget,0,30).build(); 
dragAndDrop.perform(); 

Có ai có bất kỳ ý tưởng làm thế nào tôi có thể thực hiện sự thay đổi phạm vi gia tăng này

cảm ơn trước

Trả lời

1

Bạn có thể thiết lập giá trị trực tiếp trong JavaScript:

WebElement slider = webDriver.findElement(By.id("sliderWidget")); 
System.out.println(slider.getAttribute("value")); 

JavascriptExecutor js = (JavascriptExecutor) webDriver; 
js.executeScript("javascript:document.getElementById(\"sliderWidget\").value=1.5;"); 

System.out.println(slider.getAttribute("value")); 

ý rằng sliderWidget được đặt thành 1.5 nhưng kết quả là 1.6. Bằng cách này bạn có thể kiểm tra rằng step=0.3 đang hoạt động tốt.

+1

Đây không phải là một thử nghiệm thực tế. Điều này sẽ hoạt động ngay cả khi phần tử không thể truy cập được. Và quan trọng hơn là nó không kích hoạt các trình xử lý thay đổi trên ''. –

-1

Tôi đã tìm thấy cách ổn định nhất và trình duyệt chéo là thực hiện tìm kiếm nhị phân, kéo chuột trên thanh trượt cho đến khi bạn nhấn điểm.

Tôi có Python mã/webdriver cho điều này trong blog của tôi: http://blog.usetrace.com/?p=279

+0

Đó có lẽ là cách thực tế nhất để thực hiện việc này. Nhưng nó là khá nhiều câu trả lời chỉ có liên kết. Tôi chắc chắn sẽ không thể tìm ra điều này mà không theo dõi liên kết. –

6

Bạn có thể chọn các phần tử và sử dụng phương pháp send_keys để gửi các phím mũi tên trái phải/(mà nên tăng/giảm các đầu vào). Trong Python:

from selenium.webdriver.common.keys import Keys 
... 
slider = page.find_element_by_id("sliderWidget") 
for i in range(10): 
    slider.send_keys(Keys.RIGHT) 

Điều đó sẽ tăng giá trị bằng 10

+0

Không hoạt động trong Java. : / – maxx777