Code: Select all
while TimingLoops < 5:
TimingLoops = TimingLoops+1
time.sleep(0.05)
newelement = driver.find_element(By.XPATH, "/html/body/div[3]/div[3]/div[2]/div[1]/div[2]/span[1]")
newelementText = newelement.text
< /code>
Fehler < /p>
Exception has occurred: StaleElementReferenceException
Message: stale element reference: stale element not found in the current frame
< /code>
Um den abgestandenen Referenzfehler zu verhindern, habe ich eine Codezeile eingefügt, um nach dem Vorhandensein des gewünschten Textes zu überprüfen. Ich gehe davon aus, dass der Wert in der Spannweite vielleicht während des Veränderungsprozesses verschwindet? Ich erwartete, dass diese Codezeile [url=viewtopic.php?t=29987]verhindern[/url] würde, dass mein Code vorwärts geht, bis das Element vorhanden war und zur Verwendung zur Verfügung steht. Verwende ich die falsche erwartete Bedingung, um dies zu tun? Meine Kenntnisse über HTML und Python sind beide ziemlich begrenzt. Vielleicht ist dies die falsche Art von Überprüfung für diesen Elementtyp? Ich habe versucht, einen Schecks zu verwenden, der jedoch nicht auf einem Tupel verwendet werden kann, und die Liste der erwarteten Selen -erwarteten Bedingungen durchsuchte, enthüllte nichts, was mich als geeigneter als die Bedingung aussprach, die ich jetzt verwende. < /P>
while TimingLoops < 5:
TimingLoops = TimingLoops+1
time.sleep(0.05)
newelement = WebDriverWait(driver,120).until(
EC.presence_of_element_located((By.XPATH,
"/html/body/div[3]/div[3]/div[2]/div[1]/div[2]/span[1]"))
)
newelementText = newelement.text
< /code>
und ich erhalte immer noch den Fehler < /p>
Exception has occurred: StaleElementReferenceException
Message: stale element reference: stale element not found in the current frame
Bearbeiten: Listen Sie den gesamten Codeblock auf, der zur Nachbildung des Fehlers erforderlich ist, einschließlich der empfohlenen Wartezeitbedingung durch Jeffc. Der Fehler erfolgt nach dem Eingeben einer Suche in die Suchleiste, nicht zuvor mit NewCount [0] .Text Ausnahme von abgestandenem Element Referenz. Manchmal kann es bis zu 20 oder 30 Mal dauern, bevor der Fehler geworfen wird. < /P>
Code: Select all
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
import time
driver = webdriver.Chrome()
driver.get("https://bonap.net/TDC/")
GenusName = "Rudbeckia"
x=1
GenusCount = 0
wait = WebDriverWait(driver, 10)
while x
Mobile version