<selenium.webdriver.remote.webelement.WebElement (session=“8dcdc8b4-6797-4198-9658-bbe7fbe3da81“, el

这篇文章关于两篇错误:
报错:
一:
<selenium.webdriver.remote.webelement.WebElement (session="8dcdc8b4-6797-4198-9658-bbe7fbe3da81", element="fc78d524-a908-4c1a-9b85-923668b141c5")>
二:
'WebElement' object is not subscriptable
下面按顺序讲。

爬虫定位元素之后,想把结果打印出来看看对不对,在print的时候出现了这样的报错:
<selenium.webdriver.remote.webelement.WebElement (session="8dcdc8b4-6797-4198-9658-bbe7fbe3da81", element="fc78d524-a908-4c1a-9b85-923668b141c5")>
在一番查询之后发现其实并不是报错,只是定位到的是一个列表的形式,打印的时候需要确定到列表的某个值才能打印出想要的结果
于是将:

print(name)

改为:

print(name[0].text)

到这里还是没有成功打印,报错如下:
'WebElement' object is not subscriptable
这里是因为element代表查找单个元素而elements才能查找出列表(注意方法名中element和elements的区别,前者找单个元素,后者能找个列表元素,即多个元素并组成list列表返回输出)
于是乎将代码中的:

name = driver.find_element(By.XPATH,'//div[@class="p-name p-name-type-2"]/a/em')

改为

name = driver.find_elements(By.XPATH,'//div[@class="p-name p-name-type-2"]/a/em')

成功打印结果:

https://item.jd.com/100017586667.html
YATOTO儿童书包小学生1-3-6年级减负护脊轻便背包环保抗菌高颜值男女双肩包大容量生日礼物 梦幻美人鱼
828.00
Yatoto京东自营旗舰店
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值