在没有id的selenium中找到提交按钮

hum*_*ing 7 python selenium

我有一个按钮

<input type="submit" class="button button_main" style="margin-left: 1.5rem;" value="something">
Run Code Online (Sandbox Code Playgroud)

我无法通过ID或名称找到它,需要提交表格.

我试过这样做:或者,WebDriver在每个元素上都有方便的方法"submit".如果在表单中的元素上调用它,WebDriver将向上走DOM,直到找到封闭的表单,然后调用submit.如果元素不在表单中,则会引发NoSuchElementException:element.submit() http://selenium-python.readthedocs.org/navigating.html

但是找不到提交选择器.

想法?

Kir*_* S. 17

这里有很多选择,仅举几例:

如果只有一个类是唯一的,你可以使用

driver.find_element_by_css_selector(".button_main").click()
Run Code Online (Sandbox Code Playgroud)

如果class + value combo是唯一的,您可以使用:

driver.find_element_by_css_selector(".button_main[value='something']").click()
Run Code Online (Sandbox Code Playgroud)

你也可以使用xpath:

driver.find_element_by_xpath("//input[@type='submit' and @value='something']").click()
Run Code Online (Sandbox Code Playgroud)

如果这些都不起作用(即它们没有唯一标识按钮),请查看按钮上方的元素(例如<form)并以格式提供xpath:

driver.find_element_by_xpath("//unique_parent//input[@type="submit" and @value='something']").click()
Run Code Online (Sandbox Code Playgroud)