如何使用Selenium移动范围输入(在Python中)?

2024-06-17 12:48:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经使用pythonselenium有一段时间了,我对它很满意,直到我得到一个新的需求,我应该将web页面上的滑块(here)设置为某些值,然后让页面运行其脚本,用结果更新页面。在

我的问题是如何使用pythonselenium设置滑块min和max knobs()。我已经尝试了示例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()

不幸的是没有为我工作。 如果你知道任何线索,请告诉我。 非常感谢你的帮助。在

谨致问候


Tags: fromimportmovebytimeosdriverselenium
1条回答
网友
1楼 · 发布于 2024-06-17 12:48:03

好吧,我想你可以听最后一条评论,它会给你线索的。在

事实上我做了并且得到了一些好结果。首先,您需要使用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()

相关问题 更多 >