Python 如何解决;“非接触性异常”;错误?
我已经开始为一个本地房地产网站编写解析器。我已经使用Selenium选择了我需要的页面,但几分钟后我无法再次访问该页面,因此出现以下错误:Python 如何解决;“非接触性异常”;错误?,python,parsing,selenium,Python,Parsing,Selenium,我已经开始为一个本地房地产网站编写解析器。我已经使用Selenium选择了我需要的页面,但几分钟后我无法再次访问该页面,因此出现以下错误: NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"//*[@id="tr_an-357543"]"} (Session info: chrome=55.0.2883.87) (Dri
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)
这是一段代码:
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()
当我再次复制粘贴“Caracteristic”的x路径时,它就工作了。如何解决这个问题 站点加载每个页面似乎需要几秒钟的时间。您可以在初始化
驱动程序时定义隐式等待,以在搜索元素时等待元素在DOM中存在的给定时间(一次初始化)
或者在有问题的部分使用显式等待和预期条件
parentElement = WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.XPATH, '//*[@id="tr_an-357543"]'))
供参考。此元素的id
是否更改'/*[@id=“tr_an-357543”]
?听起来你只是需要一些更强大的选择器。如果看不到任何html
,就很难说它们看起来像什么。
parentElement = WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.XPATH, '//*[@id="tr_an-357543"]'))