J'ai écrit le script du pilote chrome sélénium pour un site Web ASP.net et j'ai reçu l'erreur stale element reference: element is not attached to the page document
lors de son exécution.référence d'élément obsolète: l'élément n'est pas attaché au document page pour la liste déroulante - python
script suppose de cliquer sur un élément par un dans la liste déroulante. Il y a une liste déroulante 4 totale et fonctionne comme ceci quand la page est chargée la première liste déroulante a des options quand nous cliquons sur la deuxième option du premier menu déroulant après une page temporelle charge des données dans la deuxième liste déroulante et la même procédure pour d'autres par ce que je peux le code ci-dessous en mesure de sélectionner deuxième, troisième, Forth .... option première goutte vers le bas puis obtenu l'erreur lors de la sélection deuxième option de deuxième liste déroulante
est le code ici
# -*- coding: utf-8 -*-
import sys
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.action_chains import ActionChains
def selectYear():
year = driver.find_element_by_id("carYear")
ActionChains(driver).move_to_element(year).click(year)
year.click()
WebDriverWait(year, 100).until(
EC.presence_of_element_located((By.XPATH, ".//option[2]")))
yearOptions = year.find_elements_by_tag_name("option")
for option in yearOptions:
optVal = option.get_attribute("value")
if optVal is 0:
continue
else:
print("Car Year is : %s" % optVal)
dataList['Year'] = optVal
ActionChains(driver).move_to_element(option).click(option)
option.click()
selectModel()
def selectMake(driver):
make = driver.find_element_by_id("carMakeId")
ActionChains(driver).move_to_element(make).click(make)
make.click()
WebDriverWait(make, 100).until(
EC.presence_of_element_located((By.XPATH, ".//option[2]")))
makeOptions = make.find_elements_by_tag_name("option")
print makeOptions
for option in makeOptions:
optVal = option.get_attribute("value")
if optVal == '0':
continue
else:
print("Make is : %s" % optVal)
dataList['Make'] = optVal
ActionChains(driver).move_to_element(option).click(option)
option.click()
selectYear()
def main():
driver.get("https://www.getunitronic.com/")
WebDriverWait(driver, 200).until(
EC.presence_of_element_located((By.ID, "carMakeId")))
selectMake(driver)
# driver.close()
if __name__ == "__main__":
dataList = {'Make' : "Make",
'Year' : "Year",
'Model' : "Model",
'Engine' : "Engine",
'Category' : "Category",
'Product Type' : "Product Type",
'Title' : "Title",
'Stock Power' : "Stock Power",
'Octane' : "Octane",
'HP' : "HP",
'LB-FT' : "LB-FT",
'Desctiption' : "Description",
'Installation' : "Installation",
'UniCONNECT+' : "UniCONNECT+",
'Features' : "Features",
'Price' : "Price",
'Media1' : "Media1",
'Hardware Included' : "Hardware Included",
'Recommended Software' : "Recommended Software",
'Related Hardware' : "Related Hardware"}
driver = webdriver.Chrome()
sys.exit(main())
Erreur:
Make is : 8
Traceback (most recent call last):
File ".\unitronic.py", line 121, in <module>
sys.exit(main())
File ".\unitronic.py", line 96, in main
selectMake(driver)
File ".\unitronic.py", line 85, in selectMake
selectYear()
File ".\unitronic.py", line 52, in selectYear
EC.presence_of_element_located((By.XPATH, ".//option[2]")))
File "C:\Python27\lib\site-packages\selenium\webdriver\support\wait.py", line 71, in until
value = method(self._driver)
File "C:\Python27\lib\site-packages\selenium\webdriver\support\expected_conditions.py", line 63, in __call__
return _find_element(driver, self.locator)
File "C:\Python27\lib\site-packages\selenium\webdriver\support\expected_conditions.py", line 402, in _find_element
raise e
selenium.common.exceptions.StaleElementReferenceException: Message: stale element reference: element is not attached to the page document
(Session info: chrome=61.0.3163.100)
(Driver info: chromedriver=2.29.461591 (62ebf098771772160f391d75e589dc567915b233),platform=Windows NT 10.0.14393 x86_64)