Splinter find_by_css()未按预期工作

时间:2016-07-26 14:30:53

标签: python splinter

我在浏览器中试过这个并且工作正常:

('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看不到它?

1 个答案:

答案 0 :(得分:1)

有时无论出于何种原因,硒会确定元素在确实存在时是不可见的。

最好检查你的CSS以确保没有任何内容覆盖它,以确保。

如果您确定可见,请尝试使用execute_script

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