单击页面上的每个单选按钮
问题描述:
我试图连续单击左侧的每个按钮this page。单击页面上的每个单选按钮
每个单选按钮有一个值:第一个是值= 4,最后一个是值= 32
所以我想我可能只是循环到像那些值:
from selenium import webdriver
from selenium.webdriver.support.ui import Select
driver = webdriver.Firefox()
driver.get("http://www.specific-diets.com/product-finder/dog?PageSize=1001&SpecificDogBreedSize=4&SpecificSpecialNeeds=20")
for i in range(0,32) :
radio=driver.find_element_by_css_selector("input[value='i']")
radio.click()
我我在这里遇到了一个问题,甚至当我只是把我放在一边。我不知道为什么。
如果我这样做:
radio=driver.find_element_by_css_selector("input[value='5']")
或
radio=driver.find_element_by_css_selector("input[value='6']")
它完美的作品。
这是为什么?
另外它不是我认为最有效的方式。
答
当你这样做 -
for i in range(0,32) :
radio=driver.find_element_by_css_selector("input[value='i']")
i
的值不会自动替换那里,而不是你实际上是试图用价值来选择一个元素= i
。使用str.format()
替代正确的值i
。
此外,应启动的范围从4至33,如 - range(4,33)
如你所说 -
第一个是值= 4,最后一个是值= 32
实施例 -
for i in range(4,33) :
radio=driver.find_element_by_css_selector("input[value='{}']".format(i))
任何关心评论为什么这是一个不好的答案?或错? –