Hallo allerseits Ich versuche ein Skript zu schreiben, um auf eine Webseite zu klicken. Allerdings stehe ich diesen Fehler:Element ist momentan nicht sichtbar und kann daher nicht mit Firefox und Python interagiert werden
Traceback (most recent call last): File "D:/YetLin/testbb.py", line 44, in yearselect.select_by_value("2") File "D:\Python27\lib\site-packages\selenium\webdriver\support\select.py", line 81, in select_by_value self._setSelected(opt) File "D:\Python27\lib\site-packages\selenium\webdriver\support\select.py", line 211, in _setSelected option.click() File "D:\Python27\lib\site-packages\selenium\webdriver\remote\webelement.py", line 74, in click self._execute(Command.CLICK_ELEMENT) File "D:\Python27\lib\site-packages\selenium\webdriver\remote\webelement.py", line 457, in _execute return self._parent.execute(command, params) File "D:\Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 233, in execute self.error_handler.check_response(response) File "D:\Python27\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 194, in check_response raise exception_class(message, screen, stacktrace) selenium.common.exceptions.ElementNotVisibleException: Message: Element is not currently visible and so may not be interacted with
Hier ein Bild des Elements ist, und die folgende ist mein Code. Könnte jemand bitte helfen? :)
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")
Das Ganze ist eine Dropdown-Liste. Dies wird erst angezeigt, nachdem Sie auf "Bitte wählen Sie einen Typ" geklickt haben. Ich möchte die „Download Zusammenfassung“
Versuchen Scrollen nach oben/unten, um das Element auszuwählen es dann. Das könnte funktionieren. – ssundarraj
können Sie visuell bestätigen, dass das Element sichtbar ist, während das Skript ausgeführt wird? –
danke für deinen Kommentar! Die Dropdown-Liste erfordert jedoch kein Scrollen (manuelles Klicken). – Bread