当Selenium WebDriver不是全屏时,ElementNotVisibleException

时间:2016-03-21 13:43:06

标签: python selenium selenium-webdriver

我正在尝试使用Selenium WebDriver让Firefox在此Boerse Frankfurt webpage的搜索字段中输入搜索查询。

我可以通过find_element_by_namefind_element_by_xpath成功找到网络元素,这会提供<selenium.webdriver.remote.webelement.WebElement object at 0x10768e490>

但是,在尝试清除字段,发送密钥或以其他方式单击时,我收到错误消息:

  

ElementNotVisibleException:消息:元素当前不可见   因此可能无法与

互动

我在使用Selenium之前不熟悉这个错误,所以我对我的代码可能出错而感到茫然:

driver.get("http://en.boerse-frankfurt.de/")

search_string = "test"

search_box = driver.find_element_by_xpath(".//*[@id='searchvalue']")
search_box.send_keys(search_string)
search_box.send_keys(Keys.RETURN)

编辑:这里的问题实际上是驱动程序窗口没有最大化到全屏。请参阅下面的答案/评论。

2 个答案:

答案 0 :(得分:1)

Wait,搜索字段变为可见,然后才与之互动:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC


driver = webdriver.Firefox()
driver.get("http://en.boerse-frankfurt.de/")

search_string = "test"

wait = WebDriverWait(driver, 10)
search_box = wait.until(EC.visibility_of_element_located((By.ID, "searchvalue")))

search_box.clear()
search_box.send_keys(search_string)
search_box.send_keys(Keys.RETURN)

答案 1 :(得分:0)

C:\Users\Me\

首先点击搜索框,然后点击sendkeys。