我正在尝试连续点击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']")
完美无缺。
为什么会这样?
此外,这不是我认为最有效的方式。
答案 0 :(得分:0)
当你这样做时 -
for i in range(0,32) :
radio=driver.find_element_by_css_selector("input[value='i']")
i
的值不会自动替换,而是您实际上尝试选择值为i
的元素。请使用str.format()
代替i
的正确值。
另外,你应该从4到33开始,As - range(4,33)
如你所说 -
第一个是值= 4,最后一个是值= 32
示例 -
for i in range(4,33) :
radio=driver.find_element_by_css_selector("input[value='{}']".format(i))