2016-02-21 107 views
2

我有一个按钮发现硒提交按钮没有ID

<input type="submit" class="button button_main" style="margin-left: 1.5rem;" value="something"> 

我无法通过编号或名称找到它,并需要提交表单。

我试过这样做: 或者,WebDriver对每个元素都有一个方便的方法“提交”。如果你在一个表单中的元素上调用它,WebDriver会遍历DOM直到找到包含表单,然后调用它。如果元素是不是在形式,则NoSuchElementException异常会被提出: element.submit() http://selenium-python.readthedocs.org/navigating.html

但无法找到任何提交选择。

想法?

+1

是iframe中的窗体吗? –

回答

8

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

如果单独类是独一无二的,你可以使用

driver.find_element_by_css_selector(".button_main").click() 

如果类+值组合是独一无二的,你可以使用:

driver.find_element_by_css_selector(".button_main[value='something']").click() 

您还可以使用XPath:

driver.find_element_by_xpath("//input[@type='submit' and @value='something']").click() 

如果没有这些工作(即他们没有确定按钮唯一),看一下按钮(例如<form以上的元素),并提供格式中的XPath:

driver.find_element_by_xpath("//unique_parent//input[@type="submit" and @value='something']").click() 
+0

非常感谢! – humanbeing

1

您可以尝试使用XPath表达式或CSS选择器(如input [type =“button”])来查找元素,然后只需单击该元素即可。

0

我推荐的XPath浏览器扩展程序,有了它,你就能获取路径通过运行扩展名并按住Shift键并点击你想要的这个Chrome扩展https://chrome.google.com/webstore/detail/xpath-helper/hgimnogjllphhhkhlmebbmlgjoejdpjlenter image description here

+1

您不需要为此扩展,只需打开开发人员工具并选择一个元素,然后右键单击>复制> xpath。要通过xpath搜索只需使用Ctrl + F或cmd + f – Marcel

+0

哇只是这样做,非常感谢信息 –