元素当前不可见,因此可能无法与Firefox和Python交互

时间:2016-06-01 08:37:46

标签: javascript python selenium

大家好我正在尝试编写一个模仿点击网站的脚本。但是,我遇到了这个错误:

  

回溯(最近一次调用最后一次):文件" D:/YetLin/testbb.py" ;,行   44,在       yearselect.select_by_value(" 2")文件" D:\ Python27 \ lib \ site-packages \ selenium \ webdriver \ support \ select.py",   第81行,在select_by_value中       self._setSelected(opt)File" D:\ Python27 \ lib \ site-packages \ selenium \ webdriver \ support \ select.py",   第211行,在_setSelected中       option.click()File" D:\ Python27 \ lib \ site-packages \ selenium \ webdriver \ remote \ webelement.py",   第74行,点击       self._execute(Command.CLICK_ELEMENT)文件" D:\ Python27 \ lib \ site-packages \ selenium \ webdriver \ remote \ webelement.py",   第457行,在_execute中       return self._parent.execute(command,params)File" D:\ Python27 \ lib \ site-packages \ selenium \ webdriver \ remote \ webdriver.py",   第233行,执行中       self.error_handler.check_response(response)File" D:\ Python27 \ lib \ site-packages \ selenium \ webdriver \ remote \ errorhandler.py",   第194行,在check_response中       raise exception_class(message,screen,stacktrace)selenium.common.exceptions.ElementNotVisibleException:Message:   元素当前不可见,因此可能无法与

进行交互

这是元素的图像,以下是我的代码。有人可以帮忙吗? :)

enter image description here



from selenium import webdriver
from selenium.webdriver.support.ui import Select
from selenium.webdriver import ActionChains
url = 'https://appworld.blackberry.com/isvportal/login.do'
driver = webdriver.Firefox()
driver.get(url)

element = driver.find_element_by_id("ssoLogin")
driver.execute_script("arguments[0].click();", element)
username = driver.find_element_by_name("formId:email")
password = driver.find_element_by_name("formId:password")

username.send_keys("yyy")
password.send_keys("xxx")

driver.find_element_by_name("formId:logincommandLink").click()

driver.find_element_by_link_text('Reports').click()
driver.implicitly_wait(3)
driver.find_element_by_link_text('Schedule').click()


driver.implicitly_wait(3)

driver.find_element_by_id("s2id_fetchTypesSelect")



driver.find_element_by_id("s2id_fetchTypesSelect")
driver.find_element_by_css_selector("#fetchTypesSelect").click()
yearselect = Select(driver.find_element_by_css_selector("#fetchTypesSelect"))
driver.implicitly_wait(3)
yearselect.select_by_value("2")




整个事情是一个下拉列表。这只会在您点击&#34后显示;请选择类型"。我想获得"下载摘要"

enter image description here

2 个答案:

答案 0 :(得分:1)

管理得到它:) 如果有人可能需要,我会在这里发布我的答案。

我所做的是使用搜索文本框来获取我想要的选项。

driver.find_element_by_xpath('//*[@id="s2id_fetchTypesSelect"]/a/span[1]').click()
time.sleep(1)
#driver.find_element_by_css_selector('#fetchTypesSelect')

time.sleep(1)

search= driver.find_element_by_xpath('//*[@id="select2-drop"]/div/input')
search.click()
search.send_keys('Download Summary')
driver.find_element_by_xpath('//*[@id="select2-drop"]/ul/li/div').click()

答案 1 :(得分:0)

之前我遇到过同样的问题。事实是select元素是隐藏的,实际上类是隐藏字段。硒司机看不到它。

相关问题