python笔记6

python笔记6,第1张

概述#回顾7大定位定位方式idnameclasstaglink_textpartial_link_textxpath#xpath:1绝对路径定位/html/body/一层层去写不能越级2相对路径//通配符*任意#标签[@属性=属性值]通过下标标签[索引]索引从1开始#css定位方式#1通过id去选择定位#代表了id#id的属性值

#回顾 7大定位 定位方式 ID name class tag link_text partial_link_text xpath #xpath :1绝对路径定位 /HTML/body/一层层去写 不能越级 2相对路径 // 通配符 *任意 #标签[@属性=属性值] 通过下标 标签[索引] 索引从1开始

#CSS定位方式 #1通过ID去选择定位 #代表了ID #ID的属性值 相当于 xpath @ID

from selenium import webdriverimport timedriver=webdriver.Chrome()driver.get('https://www.baidu.com')

#1通过ID去选择定位 #代表了ID #ID的属性值 相当于 xpath @ID

driver.find_element_by_CSS_selector('#kw').send_keys('松勤')

#2通过class定位 .代表class .class属性值 如果class属性中间有空格①把空格前的删掉 ②把空格替换成.

driver.find_element_by_CSS_selector('.bg.s_btn').click()

#3通过标签+属性=属性值 标签[属性='属性值'] 跟xpath区别 没有// 也没@ 有class或者ID的话可以简写:标签#ID属性值

driver.find_element_by_CSS_selector('input[]').send_keys('松勤')driver.find_element_by_CSS_selector("input[value='百度一下']").click()

#4模糊查询 #①以……开头 ^ shift+6键 标签[属性^=属性值的开头]

driver.find_element_by_CSS_selector("input[name^='w']").send_keys('松勤')driver.find_element_by_CSS_selector("input[type^='sub']").click()

#②以……结尾 $ 英文状态下shift+4键 标签[属性$=属性值的结尾]

tmpList=driver.find_elements_by_CSS_selector("input[name$='d']")tmpList[0].send_keys('松勤')driver.find_element_by_CSS_selector("input[type$='t']").click()

#③ 以……中间 * 标签[属性*=属性值的中间]

driver.find_element_by_CSS_selector("input[class*='_i']").send_keys('松勤')driver.find_element_by_CSS_selector("input[class*='_bt']").click()

#5子元素查询 A>B>C>D 可以不从头开始 , 但是不能越级 多层也可以 也可以A>B[属性=属性值] 注意没有下标 像xpath里//A/B/C/D

driver.find_element_by_CSS_selector('span>input').send_keys('松勤')

#6后代元素 A B没有层级 表示A标签下所有后代标签B 多层 也可以A[属性=属性值] B[属性=属性值] #7子元素查找 标签:nth-child(num) 找第几个孩子 num的值是1开始 num几个孩子是同级 相当于xpath里的标签[索引] #如定位12306 的发车时间6:00-12:00 select option:nth-child(3) #如果只想匹配第一个孩子 标签:first-child 如果匹配最后一个孩子 标签:last-child #copy selector

time.sleep(5)driver.quit()

#智能等待 #1强制等待 一直等待 啥也干不了 (必须掌握) 有些时候 你页面没加载完成 去定位了会报找不到元素

import timefrom datetime import datetimeprint('开始时间',datetime.Now())time.sleep(5) #一般3-5秒print('结束时间',datetime.Now())

#2隐式等待 针对的是整个浏览器 页面加载最长的时间 所有元素(不做要求)

from selenium import webdriverdriver=webdriver.Chrome()driver.implicitly_wait(10) #超过最大等待时间没定位到就会报错 相当于一场考试2小时 有人提前交卷 最长二个小时

#3显示等待 针对具体某个元素 设置等待时间(不做要求) 针对具体的元素和超时时间的限制

from selenium.webdriver.common.by import Byfrom selenium.webdriver.support.ui import webdriverwaitfrom selenium.webdriver.support import expected_conditions as ECfrom selenium import webdriver#until 知道某个元素出现 not until 直到某个元素小时#presence_of_element_located 确认元素存在driver=webdriver.Chrome()element=webdriverwait(driver,10,0.5).until(EC.presence_of_element_located((By.ID,'kw')))#element是元素对象,针对具体某个元素

#excel表格 *** 作 #安装三个库 读 pip install xlrd 写 pip install xlwt 更改 pip install xlutils import xlrd import xlwt from xlutils.copy import copy

#写 *** 作

peopleList=[['姓名','年龄','性别'],['小明',18,'男'],['小红',25,'女']]book=xlwt.Workbook()#新建工作表sheet=book.add_sheet('人员列表')#新建sheet页#行 列写入row=0#控制行for people in peopleList:col=0#控制列for one in people:#循环列表中的列表print(one)sheet.write(row,col,one)#写入数据 (0,0,姓名) (0,1,年龄) (0,2,性别)col+=1#列+1row+=1#行+1book.save('E:/people.xls')#保存excel表格 写路径print('数据写入完成')

#读 *** 作

book=xlrd.open_workbook('people.xls')#打开excel表格sheet=book.sheet_by_name('人员列表')#读取sheet页#读取姓名print(sheet.cell(0,0).value)#读取单个print(sheet.cell(2,1).value)#读取一行print(sheet.row_values(0))#读取第一行#读取一列print(sheet.col_values(0))#读取第一列

#读取所有行

print(sheet.nrows)总共的行数for one in range(sheet.nrows):print(sheet.row_values(one))

#读取所有列

print(sheet.ncols)#总共的列数for one in range(sheet.ncols):print(sheet.col_values(one))

#更改:

book1=xlrd.open_workbook('people.xls')#打开excel表格book2=copy(book1)#复制excel表格sheet=book2.get_sheet(0)#通过索引获取sheet页 第一个sheet页 从0sheet.write(2,1,25)#更新第三行第二列单元格里的数据# book2.save('people.xls')#保存 更新原excelbook2.save('person.xls')# 换个名字另存为为一个修改过后的 原数据保持不变

from selenium import webdriver import time #初始化,运行Chrome driver driver = webdriver.Chrome() driver.implicitly_wait(10) driver.maximize_window() driver.get('http://120.55.190.222:9090/loginController.do?login2')

driver.find_element_by_ID('username').send_keys('testxt') driver.find_element_by_ID('password').send_keys('songqintest') driver.find_element_by_ID('but_login').click() ele = driver.find_element_by_class_name('form-control') print(ele.text) if ele.text == '欢迎登录松勤VIP管理系统': print('pass') else: print('fail')

总结

以上是内存溢出为你收集整理的python笔记6全部内容,希望文章能够帮你解决python笔记6所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1189039.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存