import time
from selenium import webdriver
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
import re
#使用slenium获取网页
driver = webdriver.Chrome()
driver.implicitly_wait(10)
driver.get('http://tousu.315che.com/tousuList/2/12/1.htm?subContentId=51307')
#选取目标元素
def work_data():
handles=driver.window_handles
print("老窗口句柄:{0}".format(handles))
elements=driver.find_element_by_xpath('//div//ul/li/div/a').click()
for handle in driver.window_handles:
driver.switch_to.window(handle)
if "315汽车投诉_汽车消费网" in driver.title:
break
print(driver.title)
from selenium import webdriver
data=elements.find_element_by_xpath('.//*/div/div/div/div/div/*[@class="complaints-appeal-info"]/p/@class')
for data1 in data:
print(data.get_attribute('outerTEXT)
'))
time.sleep(5)
work_data()
![图片说明](https://img-ask.csdn.net/upload/202007/23/1595505992_999164.png
'NoneType' object has no attribute 'find_element_by_xpath'出错(python)
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- 郑连辉241 2022-06-28 17:21关注
通过webdriver对象的find_element_by_xx(" "),在selenium的4.0版本中此种用法已经抛弃。
可用方法:
1,通过webdriver对象的find_element("属性名","属性值")
如:我们要定位一个属性id,值为"wang"的元素driver.find_element("id","wang")
2,通过webdriver模块中的By,以指定方式定位元素
导入模块:from selenium.webdriver.common.by import By 如:定位id为username,class_name为password,tag_name为input的元素
driver.find_element(By.ID,"username") driver.find_element(By.CLASS_NAME,"passwors") driver.find_element(By.TAG_NAME,"imput")
我也是在遇到与你相同的问题后,去别人的博客里找到的答案。
解决 25无用 1
悬赏问题
- ¥15 鼎捷t100或鼎捷E10生产模块与odoo17详细区别和鼎捷t100或鼎捷E10物料清单(BOM)可以在子级的子级在同一界面操作吗
- ¥50 VS2019,xamarin框架串口调试报错Java.Lang.SecurityException: Exception of type
- ¥20 QT如何判断QLineF线鼠标划过事件
- ¥15 关于#phpstorm#的问题:phpstorm编辑工具 光标选中了就会自动复制到粘贴板上 这样我之前复制的内容就失效了
- ¥15 pychram安装jupyter插件
- ¥60 悬赏破解越狱iphone4s中360保险箱密码遗忘
- ¥20 ARKts悬浮窗和快捷方式问题
- ¥15 linux中nginx服务器提示not found on accelerator,如何解决?(语言-php|操作系统-linux)
- ¥15 comparecluster没有办法kegg
- ¥15 远程访问linux主机超时