具有多个类型和多个数据绑定的Python Selenium HTML类



这是我第一天使用Selenium,所以我还没有掌握所有的技巧。我想使用python填充许多不同的值到文本框/下拉框从一个网站。我需要这样做很多次,每次的值都会不同。

当使用Selenium时,我需要访问的大部分内容都在表单中:

<input class="there are several classes" type="text" data-bind="value: value">

多个文本框具有相同的类,相同的类型,但不同的数据绑定值。每次尝试更新这些文本框中的值时,我只能更新第一个文本框(并且我需要访问所有文本框)。

我写的代码是:
from selenium import webdriver
driver = webdriver.Firefox()
driver.get('website')
a = driver.findElement(By.cssSelector("input.there.are.several.classes.input-sm")).getAttribute("value")
a.clear()
a.send_keys('0.20')

对于这段代码,我得到AttributeError: 'WebDriver'对象没有属性'findElement'

我也试过了:

    b = driver.find_element_by_css_selector('input.there.are.several.classes.input-sm')
    b.clear()
    b.send_keys('2')

可以工作,但是它只更新第一个文本框。我需要一种方法来访问基于文本框的特定值在同一类。

使用find_elements_by_css_selector()并遍历找到的input元素:

for elm in driver.find_elements_by_css_selector('input.there.are.several.classes.input-sm'):
    elm.clear()
    elm.send_keys("2")

应该可以了

 b = driver.find_elements_by_css_selector('input.there.are.several.classes.input-sm')

最新更新