我使用Python Selenium已经有一段时间了,我一直对它感到满意,直到得到这个新要求为止,我应该将网页(here)上的滑块设置为某些值,然后让该页面运行其脚本以用结果更新页面。
我的问题是如何使用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()
不幸的是不为我工作。
如果您知道任何线索,请告诉我。
非常感谢您的帮助。
问候,
最佳答案
好吧,我认为您可以遵循最后的评论,它将为您提供线索。
实际上,我做到了,并获得了一些不错的结果。首先,您需要使用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()
关于python - 如何使用Selenium移动范围输入(在Python中)?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40485157/