找到下一个/最近的按钮Selenium

时间:2017-07-28 23:12:50

标签: python selenium xpath

我正在使用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但如果我想使用xpathfollowing-sibling,我还需要获取一些id并在每次迭代中更改路径,如:< / p>

x = fetch id from the input field?
driver.find_element_by_xpath("//input[@id, "x"]/following-sibling::button")

是否有一个简单的解决方案可以找到与所选元素最接近的元素?

1 个答案:

答案 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>

参考:https://www.w3schools.com/xml/xpath_intro.asp