【发布时间】:2023-03-11 12:45:02
【问题描述】:
我正在使用 selenium 在我的网站上自动填写一些 <input>s。我有多个相同的输入,每个输入都有一个输入字段和一个发送按钮。我想在每个输入字段中发布一个字符串并发送它(该站点不会重新加载)。
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 并在每次迭代中更改路径,例如:
x = fetch id from the input field?
driver.find_element_by_xpath("//input[@id, "x"]/following-sibling::button")
是否有一个简单的解决方案来找到最接近所选元素的元素?
【问题讨论】:
-
如果这些
INPUTs 在表单中,您只需对表单中的任何元素执行in.submit()。 -
@JeffC 不,Ajax 只会在点击我提交时触发,页面会重新加载...