python - 在 Selenium,python 中使用 XPath 时出错

标签 python html css selenium xpath

我正在尝试访问网站上餐厅的名称和链接。虽然我从页面源复制了xpath,但我仍然得到错误:

NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"//*[@id="component_2"]/div/div[2]/span/div[2]/div[1]/div/div/a"} (Session info: chrome=78.0.3904.87)

browser.find_element_by_class_name('submit_text').click()
browser.implicitly_wait(5)
paths = []
for i in range(2,14):
    if i%6 != 0:
        paths.append(browser.find_element_by_xpath('//*[@id="component_2"]/div/div['+str(i)+']/span/div[2]/div[1]/div/div/a'))
link = []
restaurant_name = []
for i in range(10):
    element = browser.find_element_by_xpath(paths[i])
    restaurant_name.append(element.get_attribute('innerHTML'))
    link.append(element.get_attribute('href')) 


print(paths)

这是我要查找的元素的 HTML:

<a href="/Restaurant_Review-g1080422-d10195584-Reviews-Restaurant_Brau-Sant_Cugat_del_Valles_Catalonia.html" class="restaurants-list-ListCell__restaurantName--2aSdo" target="_self">
    1. Restaurant Brau
</a>

最佳答案

引入 WebDriverWaitvisibility_of_all_elements_located() 并使用以下 css 选择器。

这将检索第 1 页上的所有 31 家餐厅

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

driver=webdriver.Chrome()
driver.get("https://www.tripadvisor.co.uk/Restaurants-g1080422-Sant_Cugat_del_Valles_Catalonia.html")
restaurants=WebDriverWait(driver,10).until(EC.visibility_of_all_elements_located((By.CSS_SELECTOR,".restaurants-list-List__wrapper--3PzDL a.restaurants-list-ListCell__restaurantName--2aSdo")))
for restaurant in restaurants:
    print("Restaurant Name : " + restaurant.text)
    print("Restaurant URL : " + restaurant.get_attribute("href"))

输出:

Restaurant Name : VdGUST
Restaurant URL : https://www.tripadvisor.co.uk/Restaurant_Review-g1080422-d12687182-Reviews-VdGUST-Sant_Cugat_del_Valles_Catalonia.html
Restaurant Name : 1. Restaurant Brau
Restaurant URL : https://www.tripadvisor.co.uk/Restaurant_Review-g1080422-d10195584-Reviews-Restaurant_Brau-Sant_Cugat_del_Valles_Catalonia.html
Restaurant Name : 2. La Rita
Restaurant URL : https://www.tripadvisor.co.uk/Restaurant_Review-g1080422-d10365477-Reviews-La_Rita-Sant_Cugat_del_Valles_Catalonia.html
Restaurant Name : 3. Kitsune Sushi Bar
Restaurant URL : https://www.tripadvisor.co.uk/Restaurant_Review-g1080422-d5966644-Reviews-Kitsune_Sushi_Bar-Sant_Cugat_del_Valles_Catalonia.html
Restaurant Name : 4. Sabatic
Restaurant URL : https://www.tripadvisor.co.uk/Restaurant_Review-g1080422-d10167691-Reviews-Sabatic-Sant_Cugat_del_Valles_Catalonia.html
Restaurant Name : 5. Dakidaya
Restaurant URL : https://www.tripadvisor.co.uk/Restaurant_Review-g1080422-d4546707-Reviews-Dakidaya-Sant_Cugat_del_Valles_Catalonia.html
Restaurant Name : 6. El Vi de Deu
Restaurant URL : https://www.tripadvisor.co.uk/Restaurant_Review-g1080422-d7076969-Reviews-El_Vi_de_Deu-Sant_Cugat_del_Valles_Catalonia.html
Restaurant Name : 7. Nemesis Gastronomia
Restaurant URL : https://www.tripadvisor.co.uk/Restaurant_Review-g1080422-d11892809-Reviews-Nemesis_Gastronomia-Sant_Cugat_del_Valles_Catalonia.html
Restaurant Name : 8. La Rampa 23
Restaurant URL : https://www.tripadvisor.co.uk/Restaurant_Review-g1080422-d4043880-Reviews-La_Rampa_23-Sant_Cugat_del_Valles_Catalonia.html
Restaurant Name : 9. Bodega Tomas
Restaurant URL : https://www.tripadvisor.co.uk/Restaurant_Review-g1080422-d7912636-Reviews-Bodega_Tomas-Sant_Cugat_del_Valles_Catalonia.html
Restaurant Name : 10. Dos Cucharas Restaurant
Restaurant URL : https://www.tripadvisor.co.uk/Restaurant_Review-g1080422-d17406200-Reviews-Dos_Cucharas_Restaurant-Sant_Cugat_del_Valles_Catalonia.html
Restaurant Name : 11. Restaurante 9 Reinas
Restaurant URL : https://www.tripadvisor.co.uk/Restaurant_Review-g1080422-d7155184-Reviews-Restaurante_9_Reinas-Sant_Cugat_del_Valles_Catalonia.html
Restaurant Name : 12. Sugoi
Restaurant URL : https://www.tripadvisor.co.uk/Restaurant_Review-g1080422-d2241212-Reviews-Sugoi-Sant_Cugat_del_Valles_Catalonia.html
Restaurant Name : 13. Il Fornetto
Restaurant URL : https://www.tripadvisor.co.uk/Restaurant_Review-g1080422-d3571022-Reviews-Il_Fornetto-Sant_Cugat_del_Valles_Catalonia.html
Restaurant Name : 14. La Tartine
Restaurant URL : https://www.tripadvisor.co.uk/Restaurant_Review-g1080422-d9702827-Reviews-La_Tartine-Sant_Cugat_del_Valles_Catalonia.html
Restaurant Name : 15. La Pina de Plata
Restaurant URL : https://www.tripadvisor.co.uk/Restaurant_Review-g1080422-d3981558-Reviews-La_Pina_de_Plata-Sant_Cugat_del_Valles_Catalonia.html
Restaurant Name : 16. La Burgueseria
Restaurant URL : https://www.tripadvisor.co.uk/Restaurant_Review-g1080422-d3452640-Reviews-La_Burgueseria-Sant_Cugat_del_Valles_Catalonia.html
Restaurant Name : 17. Vulcano Restaurant
Restaurant URL : https://www.tripadvisor.co.uk/Restaurant_Review-g1080422-d2389165-Reviews-Vulcano_Restaurant-Sant_Cugat_del_Valles_Catalonia.html
Restaurant Name : 18. Pizzeria La Bota
Restaurant URL : https://www.tripadvisor.co.uk/Restaurant_Review-g1080422-d5771344-Reviews-Pizzeria_La_Bota-Sant_Cugat_del_Valles_Catalonia.html
Restaurant Name : 19. Braseria La Bolera
Restaurant URL : https://www.tripadvisor.co.uk/Restaurant_Review-g1080422-d2276369-Reviews-Braseria_La_Bolera-Sant_Cugat_del_Valles_Catalonia.html
Restaurant Name : 20. El Meson
Restaurant URL : https://www.tripadvisor.co.uk/Restaurant_Review-g1080422-d6978197-Reviews-El_Meson-Sant_Cugat_del_Valles_Catalonia.html
Restaurant Name : 21. Le Ciel Sant Cugat
Restaurant URL : https://www.tripadvisor.co.uk/Restaurant_Review-g1080422-d15129074-Reviews-Le_Ciel_Sant_Cugat-Sant_Cugat_del_Valles_Catalonia.html
Restaurant Name : 22. Foodies
Restaurant URL : https://www.tripadvisor.co.uk/Restaurant_Review-g1080422-d6785484-Reviews-Foodies-Sant_Cugat_del_Valles_Catalonia.html
Restaurant Name : 23. Margotin
Restaurant URL : https://www.tripadvisor.co.uk/Restaurant_Review-g1080422-d2482063-Reviews-Margotin-Sant_Cugat_del_Valles_Catalonia.html
Restaurant Name : 24. Piaceri D’ Italia Ristorante Pizzeria
Restaurant URL : https://www.tripadvisor.co.uk/Restaurant_Review-g1080422-d19084243-Reviews-Piaceri_D_Italia_Ristorante_Pizzeria-Sant_Cugat_del_Valles_Catalonia.html
Restaurant Name : 25. L'antic de la placa
Restaurant URL : https://www.tripadvisor.co.uk/Restaurant_Review-g1080422-d6673634-Reviews-L_antic_de_la_placa-Sant_Cugat_del_Valles_Catalonia.html
Restaurant Name : 26. Les Voltes
Restaurant URL : https://www.tripadvisor.co.uk/Restaurant_Review-g1080422-d11897574-Reviews-Les_Voltes-Sant_Cugat_del_Valles_Catalonia.html
Restaurant Name : 27. El Mirador de Can Cases
Restaurant URL : https://www.tripadvisor.co.uk/Restaurant_Review-g1080422-d2258911-Reviews-El_Mirador_de_Can_Cases-Sant_Cugat_del_Valles_Catalonia.html
Restaurant Name : 28. Casa Blava
Restaurant URL : https://www.tripadvisor.co.uk/Restaurant_Review-g1080422-d3351146-Reviews-Casa_Blava-Sant_Cugat_del_Valles_Catalonia.html
Restaurant Name : 29. LABARRA San Cugat
Restaurant URL : https://www.tripadvisor.co.uk/Restaurant_Review-g1080422-d4103134-Reviews-LABARRA_San_Cugat-Sant_Cugat_del_Valles_Catalonia.html
Restaurant Name : 30. Pizzeria Parandu
Restaurant URL : https://www.tripadvisor.co.uk/Restaurant_Review-g1080422-d8291736-Reviews-Pizzeria_Parandu-Sant_Cugat_del_Valles_Catalonia.html

关于python - 在 Selenium,python 中使用 XPath 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58807718/

相关文章:

python - 在 Google App Engine 中接收邮件

html - 在两个图像之间创建空间

css - 将元素定位到右下角,当 Accordion 的内容到达它时它会向下扩展

html - 如何使不同字体大小的按钮高度相同

javascript - 当我调整浏览器大小时,所有元素都会改变它们的位置

javascript - 在父 div 上滚动的同时滚动子 div

不在路径上的包内的 Python 相对导入

python - Heroku 上的错误请求 400 Django 应用程序

python - 如何在后面的参数中引用函数调用的前面的参数?

javascript - 如何向 jquery 追加添加淡入淡出效果