【发布时间】:2016-09-30 12:24:38
【问题描述】:
大家好,我正在尝试编写一个脚本来模拟点击网站。但是,我面临这个错误:
Traceback(最近一次调用最后一次):文件“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) 文件 "D:\Python27\lib\site-packages\selenium\webdriver\support\select.py", 第 211 行,在 _setSelected option.click() 文件 "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) 文件 "D:\Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py", 第 233 行,执行中 self.error_handler.check_response(response) 文件 "D:\Python27\lib\site-packages\selenium\webdriver\remote\errorhandler.py", 第 194 行,在 check_response 中 raise exception_class(message, screen, stacktrace) selenium.common.exceptions.ElementNotVisibleException: 消息: 元素当前不可见,因此可能无法与之交互
这是元素的图像,以下是我的代码。有人可以帮忙吗? :)
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")
整个事情是一个下拉列表。这只会在您单击“请选择类型”后显示。我要获取“下载摘要”
【问题讨论】:
-
尝试向上/向下滚动到该元素,然后选择它。这可能行得通。
-
你能在脚本运行时直观地确认元素是可见的吗?
-
感谢您的评论!但是,下拉列表不需要滚动(手动点击)。
-
你也可以从控制台粘贴确切的错误吗?
-
@HassanMehmood 嗯,你这是什么意思?我将截图我在点击“请选择类型”之前和之后看到的内容
标签: javascript python selenium