2016-07-26 77 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()")