场景
使用selenium的find_element_by_xpath()函数报错:selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element
原因
感觉是一种新的反爬虫机制,比较简单,就是让页面晚了一点点刷新出来,所以我们的小蜘蛛查不到这个元素
解决方法
把之前的代码改成
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
driver = webdriver.Firefox()
driver.get('https://www.guiderank-app.com/goods-search?categoryId=14606257169901630856')
my_element= WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, '//*[@id="app"]/div[2]/div[3]/div/div[2]/div/div[1]/div[2]')))
1
2
3
4
5
6
7
大功告成,等它十毫秒就行了
————————————————
版权声明:本文为CSDN博主「嘟教授」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_42599499/article/details/111815529
下面是一个简短的示例,演示了如何使用if 语句来正确地处理特殊情形。假设你有一个汽车列表,并想将其中每辆汽车的名称打印出来。对于大多数汽车,都应以首字母大写的
方式打印其名称,但对于汽车名'bmw' ,应以全大写的方式打印。下面的代码遍历一个列表,并以首字母大写的方式打印其中的汽车名,但对于汽车名'bmw' ,以全大写的方
式打印
cars = ['audi', 'bmw', 'subaru', 'toyota']
for car in cars:
if car == 'bmw':
print(car.upper())
else:
print(car.title())
Audi
BMW
Subaru
Toyota