Ich habe angefangen, einen Parser für eine lokale Immobilienseite zu schreiben. Ich Selen verwendet habe, um die Seite auszuwählen, die ich brauche, aber nach ein paar Minuten kann ich es noch einmal nicht erreichen, es gibt mir diese Fehlermeldung:Wie löst man "NoSuchElementException" Fehler?
NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"//*[@id="tr_an-357543"]"}
(Session info: chrome=55.0.2883.87)
(Driver info: chromedriver=2.27.440175 (9bc1d90b8bfa4dd181fbbf769a5eb5e575574320),platform=Linux 4.4.0-21-generic x86_64)
Dies ist das Stück Code:
driver = webdriver.Chrome()
url = "https://makler.md/md/"
driver.get(url)
driver.maximize_window()
driver.find_element_by_xpath('//*[@id="rublist_lev1"]/li[1]/a').click() # acces Imobiliare
driver.find_element_by_link_text("Vânzare apartamente, camere").click() # acces Apartamente
parentElement = driver.find_element_by_xpath('//*[@id="tr_an-357543"]')
elementList = parentElement.find_elements_by_tag_name("a")
links = []
for element in driver.find_elements_by_xpath('//article[starts-with(@id, "tr_an-")]//a[@class="ls-detail_anUrl"]'):
links.append(element.get_attribute('href'))
page = driver.get(links[15])
caracteristici = driver.find_element_by_xpath('//*[@id="anItemData"]/ul[2]')# Selecteaza blocul caracteristici
print(caracteristici.text)
driver.close()
Wenn ich den x-Pfad für 'caracteristici' noch einmal kopiere und einfüge, funktioniert es. Wie behebe ich dieses Problem?
Ändert sich die 'id' für dieses Element ''// * [@ id =" tr_an-357543 "]''? Es hört sich so an, als würden Sie nur ein paar robustere Selektoren brauchen. Es ist schwer zu sagen, wie diese aussehen könnten, ohne 'html' zu sehen. – mrfreester