单击页面上的每个单选按钮

问题描述:

我试图连续单击左侧的每个按钮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)) 
+0

任何关心评论为什么这是一个不好的答案?或错? –