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()
,在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")
我也是在遇到与你相同的问题后,去别人的博客里找到的答案。
说明你对网页的xpath的访问不正确,无法找到节点,返回了None