2016-07-26 109 views
0

我在瀏覽器中嘗試這樣做,它工作正常:分裂find_by_css()無法正常運行

('button[data-item-id="1054079703"]')[0].click() 

當我嘗試它與分裂:

browser.find_by_css('button[data-item-id="1054079703"]') 

返回一個分裂對象:

[<splinter.driver.webdriver.WebDriverElement object at 0x1108c6c90>] 

我可以看到它找到了正確的元素:

browser.find_by_css('button[data-item-id="1054079703"]').first.html 
u'this_is_what_im_looking_for' 

但是當我轉到點擊:

browser.find_by_css('button[data-item-id="1054079703"]').first.click() 

,我發現了錯誤:

selenium.common.exceptions.ElementNotVisibleException: Message: element not visible 

要進行驗證,這將返回False

browser.find_by_css('button[data-item-id="1054079703"]').first.visible 

怎麼來的,我可以使用jQuery在瀏覽器中選擇它,但它通過Splinter不可見?

回答

1

有時無論什麼原因,硒會確定一個元素的確是不可見的。

最好檢查一下你的css,確保沒有任何東西疊在一起就可以了。

如果您確信它是可見的,請嘗試使用execute_script

browser.execute_script("document.getElementsByClassName('myclass')[0].click()")