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

一:python将图片转化为pdf

import glob
import fitz
import os

from matplotlib import pyplot as plt

def 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()  # 使用图片创建单页的 PDF
        imgpdf = 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-8
from time import sleep
from selenium import webdriver
from selenium.webdriver import Keys

def 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("https://www.baidu.com/")

点击写法:

  • 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’]

  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@黑夜中的一盏明灯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值