如何使用类似的驱动程序自动化网页跨度控制,如滑块值。 findElement_by_xpath(),Ubuntu Linux和chromium Autotest

时间:2015-01-21 13:47:47

标签: python selenium selenium-webdriver automation

我对这个webUI自动机非常新。如果您可以建议一些解决方案来自动化以下Web链接的跨度控制,那就太棒了:

  1. 以下Head-Coupled 3D Demo文件使用以下链接浏览 " http://sheepeuh.com/particles/"
  2. 我必须自动执行更改,这些更改是浏览器右上角的设置。例如:我已经改变了Alpha' span滑块值,如20%。如何使用像驱动程序findElement_by_xpath()这样的selenium-python自动执行此操作?
  3. HTML code:

    <li class="cr number has-slider"><div><span class="property-name">Alpha</span><div class="c"><div><input type="text"></div><div class="slider"><div class="slider-fg" style="width: 100%;"></div></div></div></div></li>
    

2 个答案:

答案 0 :(得分:1)

例如,要将Alpha更改为5,您应该使用:

from selenium.webdriver import Firefox
from selenium.webdriver.common.keys import Keys

driver = Firefox()
driver.get('http://sheepeuh.com/particles/')
alpha_val_xpath = '/html/body/div[2]/div/ul/li[12]/div/div/div[1]/input'

alpha_val_elem = driver.find_element_by_xpath(alpha_val_xpath)
alpha_val_elem.clear()
alpha_val_elem.send_keys('5' + Keys.ENTER)

答案 1 :(得分:0)

依赖li元素的位置不太可靠和可读。

依赖于属性标签

alpha_val_xpath = '//span[. = "Alpha"]/following-sibling::div//input'

alpha_val_elem = driver.find_element_by_xpath(alpha_val_xpath)
alpha_val_elem.clear()
alpha_val_elem.send_keys('5' + Keys.ENTER)

然后,您可以创建一个可以输入所需属性值的可重用函数:

def set_property(driver, name, value):
    xpath = '//span[. = "%s"]/following-sibling::div//input' % name

    elem = driver.find_element_by_xpath(xpath)
    elem.clear()
    elem.send_keys(str(value) + Keys.ENTER)

示例用法:

set_property(driver, 'Alpha', 5) 
set_property(driver, 'Width division', 15)

结果(我突出显示了脚本设置的属性):

enter image description here