100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > python将图片转化为pdf selenium自动化测试 xpath的语法

python将图片转化为pdf selenium自动化测试 xpath的语法

时间:2024-01-24 09:42:08

相关推荐

python将图片转化为pdf selenium自动化测试 xpath的语法

一:python将图片转化为pdf

import globimport fitzimport osfrom matplotlib import pyplot as pltdef pic2pdf(pdf_name, pic_floder):doc = fitz.open()for img in sorted(glob.glob(os.path.join(pic_floder, "1.png"))): # 读取图片,确保按文件名排序print(img)imgdoc = fitz.open(img) # 打开图片pdfbytes = imgdoc.convertToPDF() # 使用图片创建单页的 PDFimgpdf = fitz.open("pdf", pdfbytes)doc.insertPDF(imgpdf) # 将当前页插入文档# 修订PDF文件名if pdf_name.endswith(".pdf"):pdf_name += ".pdf"# 保存在图片文件夹下save_pdf_path = os.path.join(pic_floder, pdf_name)if os.path.exists(save_pdf_path):os.remove(save_pdf_path)doc.save(save_pdf_path) # 保存pdf文件doc.close()if __name__ == '__main__':# plt.savefig("1.png", dpi=300)# plt.show()pic2pdf("2.pdf", r"F:\Notes\Python的Web框架——Django\Django课程代码\ORM")

二:使用python进行自动百度搜索,利用xpath

1.安装chrome游览器的驱动

chrome游览器驱动地址

如何查看chrome游览器的版本:

不同的版本的驱动支持不同版本的浏览器,所以版本一定要对应好。

首先找到一个版本打开来,下面有个notes,这个就可以查看部分版本支持。

下载驱动后,直接放到python环境的目录下

样例:

# coding=utf-8from time import sleepfrom selenium import webdriverfrom selenium.webdriver import Keysdef selenum_waether(url):driver = webdriver.Chrome()driver.get(url)driver.find_element_by_id("kw").send_keys("张国荣")driver.find_element("id","su").send_keys(Keys.ENTER)sleep(1000)selenum_waether("/")

点击写法:

driver.find_element(‘name’, ‘account’).click()driver.find_element(“name”, “password”).send_keys(Keys.ENTER)

输入和查找写法

driver.find_elements(By.XPATH, ‘//*[@class=“jstree-anchor”]’)driver.find_element(‘name’, ‘account’).send_keys(username)

什么是Xpath?

XPath是XML的路径语言,通俗一点讲就是通过元素的路径来查找到这个标签元素

1、Xpath支持ID、Class、Name定位功能

1)、通过ID定位

//*[@id=‘kw’]

2)、通过Class定位

//*[@class=‘class_name’]

3)、通过Name定位

//*[@name=‘name’]

2、如果标签没有ID、Class、Name三总属性,Xpath还支持属性定位功能

@ 代表以属性定位,后面可以接标签中任意属性

//*[@other=‘attribute’]

3、当标签的属性重复时,Xpath提供了通过标签来进行过滤

将 * 换位任意标签名,则可根据标签进行筛选

//input[@placeholder=‘用户名’]

4、当标签页重复时,Xpath提供了层级过滤

例如:找不到儿子,那么就先找他的爸爸,实在不行可以再找他的爷爷

1)、支持通过 / 进行层级递进,找到符合层级关系的标签

//form/div/input[@placeholder=“用户名”]

2)、当层级都重复时,可以通过单个层级的属性进行定位

//form/div[@class=‘login-user’]/input

5、一个元素它的兄弟元素跟它的标签一样,这时候无法通过层级定位到。因为都是一个父亲生的,多胞胎兄弟。Xpath提供了索引过滤

通过索引,在List中定位属性,与python的索引有些差别,Xpath从1开始

//select[@name=‘city’][1]/option[1]

6、上面几种如果都用上了之后还重复的话,我们就可以使用Xpath提供的终极神器,逻辑运算定位。and 或 or

1)、通过and来缩小过滤的范围,只有条件都符合时才能定位到

//select[@name=‘city’ and @size=‘4’ and @multiple=“multiple”]

2)、or就相反了,只要这些筛选中,其中一个出现那么久匹配到了

//select[@name=‘city’ or @size=‘4’]

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。