2016-11-08 83 views
2

我一直在使用Python Selenium已經有相當長的一段時間了,我一直對它感到滿意,直到我得到了這個新的要求,我應該在網頁(here)上將滑塊設置爲某些值,然後讓頁面運行腳本用結果更新頁面。如何使用Selenium(使用Python)移動範圍輸入?

我的問題是如何使用Python Selenium設置滑塊最小和最大旋鈕()。我試過here這個例子,我的代碼在下面。

#! /usr/bin/python2.7 
import os 
import time 

from selenium import webdriver 
from selenium.webdriver.common.keys import Keys 
from selenium.webdriver import ActionChains 
import datetime 
import time 
import mysql.connector 



def check2(driver, slidebar, sliderknob, percent): 

    height = slidebar.size['height'] 
    width = slidebar.size['width'] 

    move = ActionChains(driver); 
    # slidebar = driver.find_element_by_xpath("//div[@id='slider']/a") 

    if width > height: 
     #highly likely a horizontal slider 
     print "off set: ", percent * width/100 
     move.click_and_hold(sliderknob).move_by_offset(500, 0).release().perform() 
    else: 
     #highly likely a vertical slider 
     move.click_and_hold(sliderknob).move_by_offset(percent * height/100, 0).release().perform() 

    driver.switch_to_default_content() 

chrome_options = webdriver.ChromeOptions() 
chrome_options.add_argument('--no-proxy-server') 

os.environ["PATH"] += ":/home/mike/software" 

os.environ["PATH"] += ":/usr/local/bin/" 
try: 
    driver = webdriver.Chrome() 
    driver.get("http://99.243.40.11/#/HouseSold") 
    els = driver.find_elements_by_xpath('//input[@class="input high"]') 
    print 'els.len = ', len(els) 
    e = els[0] 
    ens = driver.find_elements_by_xpath('//span[@class="pointer high"]') 
    en = ens[0] 
    check2(driver, e, en, 70) 
    time.sleep(20) 
finally: 
    driver.close() 

不幸的是沒有爲我工作。 如果您知道任何線索,請讓我知道。 許多appreicate你的幫助。

Regards,

+0

您剛纔複製/提供解決方案的貼...你確定你有完全一樣'HTML'你滑蓋的?提供滑塊元素的「HTML」代碼 – Andersson

+0

我更改了我的代碼並更新了它,這要歸功於您的問題。因此,現在它找到輸入範圍元素來獲取寬度/範圍,然後查找其作爲跨度元素的旋鈕,然後嘗試相對移動旋鈕。首先,我從中獲得靈感的示例用於基於JQuery的滑塊,但我的HTML標籤的實際html標籤是,而knob是span標籤。但總體而言,同樣的想法應該適用於這兩種情況,它只處理鼠標操作。我想我錯過了關於如何選擇旋鈕元素的一點。 –

+0

您是否嘗試在Selenium IDE中記錄操作,然後查看導出的代碼? – boardrider

回答

0

嗯,我想你可以按照最後的評論,它會給你的線索。

其實我做了,並取得了一些好成績。首先,您需要使用Selenium IDE來查找您想要移動的旋鈕,然後像下面那樣進行移動,如下所示。

讓我知道,如果這可以幫助你。

乾杯,

try: 
    driver = webdriver.Chrome() 
    driver.get("http://99.243.40.11/#/HouseSold") 
    en = driver.find_element_by_xpath("//span[6]") 
    move = ActionChains(driver) 
    move.click_and_hold(en).move_by_offset(10, 0).release().perform() 
    time.sleep(5) 

    move.click_and_hold(en).move_by_offset(10, 0).release().perform() 
    time.sleep(5) 

    move.click_and_hold(en).move_by_offset(10, 0).release().perform() 
    time.sleep(5) 

finally: 
    driver.close() 
+0

工作完美。謝謝 –