2016-02-21 150 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

哇只是這樣做,非常感謝信息 –