2012-10-28 37 views
0

我想在頁面上找到標籤,但到目前爲止通過名稱/ id/xpath找到它沒有工作。這是我一直試圖通過XPath來定位它:使用硒web驅動程序訪問表單標籤

db = driver.find_element_by_xpath("/html/body/form") 

driver.find_element_by_xpath("//form[@id='formControl']") 

這兩個返回的錯誤:

selenium.common.exceptions.NoSuchElementException: Message: u'Unable to locate element: 

這是因爲如果它不能找到頁面上的表單。任何想法如何解決?

這裏的頁面上的HTML的開頭:

<html> 
    <body id="bodyControl" class="PersonalizationPage ContentPage Layout_PageUsesRegions" onunload="closeTimeoutWarningPopupWindow();return true;" onload="return __MasterOnLoad();" onresize="return __MasterOnResize();"> 
    <form name="formControl" method="post" action="default.wl?appflag=65.14&amp;bhcp=1&amp;MT=208&amp;rs=LAWS2.0&amp;strRecreate=no&amp;sv=Split&amp;transfertoken=10281204301250d0dbca913e4aa6887c7d425f4ede9c&amp;vr=2.0" id="formControl" target="_top"> 
+0

看起來不像有什麼問題。你能發佈更多的代碼嗎? (您閱讀HTML頁面的部分)。你可以訪問/ body標籤嗎?甚至是/ html標籤?你確定驅動程序正在讀取網頁上的一些數據嗎? – pistache

+0

是的,我通過db = driver.find_element_by_xpath(「/ html/body」)訪問了正文。你是什​​麼意思'閱讀html頁面'?我只是使用硒webdriver,並依靠它來解析頁面。 – user1253952

+0

它是頁面上唯一的表單嗎?你有兩種方法適合我。您是否嘗試過使用XPath'// form'? – Arran

回答

0

試試這個。

driver.find_element_by_id("formControl") 

兩件事情:

  1. 確保形式是不是在頁面上的框架內。如果是,您將不得不切換到框架(它在功能上是在一個框中顯示的不同網頁)。
  2. 確保您已經選擇了正確的瀏覽器窗口,如果您操縱多個窗口,那麼您將不得不切換到您想要搜索的那個。
+1

「確保您已選擇了正確的瀏覽器窗口,如果您操縱多個窗口,則必須切換到你想要搜索的人。「非常感謝!這是問題:)在這之前的步驟中,我點擊了一個打開一個新窗口的鏈接,並且我假定該窗口會自動成爲活動窗口。謝謝!! – user1253952