我在浏览器中试过这个并且工作正常:
('button[data-item-id="1054079703"]')[0].click()
当我使用Splinter尝试时:
browser.find_by_css('button[data-item-id="1054079703"]')
返回Splinter对象:
[<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看不到它?
答案 0 :(得分:1)
有时无论出于何种原因,硒会确定元素在确实存在时是不可见的。
最好检查你的CSS以确保没有任何内容覆盖它,以确保。
如果您确定可见,请尝试使用execute_script
browser.execute_script("document.getElementsByClassName('myclass')[0].click()")