我正在使用selenium来自动填写我网站上的一些<input>
。我有多个相同的输入,每个输入都有一个输入字段和一个发送按钮。我想在每个输入字段中发布一个字符串并发送它(该站点不会重新加载)。
input = driver.find_elements_by_class_name('cdRecord')
for in in inputs:
in.click()
nr = str(randint(0, 1000))
in.send_keys("..."+nr)
NEXT_BUTTON_XPATH = '//button[@type="submit" and @title="next"]' #this does not work
driver.find_element_by_xpath(NEXT_BUTTON_XPATH).click()
我首先获取所有input
,然后迭代它们。问题是他填写了每个输入,但总是点击相同的按钮。
所以我的问题是,如何找到最近的按钮?
我找到this但如果我想使用xpath
和following-sibling
,我还需要获取一些id
并在每次迭代中更改路径,如:< / p>
x = fetch id from the input field?
driver.find_element_by_xpath("//input[@id, "x"]/following-sibling::button")
是否有一个简单的解决方案可以找到与所选元素最接近的元素?
答案 0 :(得分:1)
您可以使用in.get_attribute('id')
来检索id
。
或者,您也可以使用XPath选择给定元素的following-sibling::button
:
in.find_element_by_xpath(".//following-sibling::button").click()
说明:
.
- 选择当前节点(<input>
)//
- 选择文档中的节点
following-sibling::button
- 当前节点之后的兄弟姐妹是<button>