2016-07-06 111 views
0

我目前正試圖使用​​Selenium/Python的/ PhantomJS刮下面的表格的結果:的Python +硒刮錯誤:ElementNotVisibleException

http://gis.vgsi.com/newhavenct/Sales.aspx

它看起來像當我嘗試點擊搜索按鈕,我得到一個ElementNotVisibleException錯誤。

我的代碼:

self.driver.find_element_by_id("MainContent_btnSearch").click() 

經過一番網上挖,好像按鈕可能被隱藏。事實上,這裏是從搜索頁面相關的HTML代碼:

<input type="button" value="Search!" class="btn btn-primary searchTrigger" style="width: 200px;" /> 
<input type="submit" name="ctl00$MainContent$btnSearch" value="Search" id="MainContent_btnSearch" style="width: 200px; display: none;" /> 
<div id="MainContent_ctl00" style="display:none;"> 
</div> 

我想我前面的代碼與searchTrigger的點擊前面,但是這仍然沒有工作:

self.driver.find_element_by_class_name("searchTrigger").click() 
self.driver.find_element_by_id("MainContent_btnSearch").click() 

任何意見將非常感謝!

回答

1

請求的元素有屬性style="display:none;",所以你需要使它可見

嘗試使用下面的代碼:

self.driver.execute_script('document.getElementById("MainContent_btnSearch").style.display="block";') 
self.driver.find_element_by_id("MainContent_btnSearch").click() 
1

硒的部分屏幕不可見。這可能是另一個元素位於您嘗試點擊的元素的頂部。

什麼對我總是工作沒有花費數小時的原因搜索是點擊使用Javascript:

self.driver.execute_script("arguments[0].click();", elt) 

其中elt是WebElement - 例如由find_element_by_id(.)返回。 使它成爲一個功能,並在出現問題的任何地方使用。

編輯:它是什麼時候它再次發生的通用答案,但在這種特殊情況下,其他答案可能是正確的。