大家好我正在尝试编写一个模仿点击网站的脚本。但是,我遇到了这个错误:
回溯(最近一次调用最后一次):文件" 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: 元素当前不可见,因此可能无法与
进行交互
这是元素的图像,以下是我的代码。有人可以帮忙吗? :)
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后显示;请选择类型"。我想获得"下载摘要"
答案 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元素是隐藏的,实际上类是隐藏字段。硒司机看不到它。