IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> selenium基本用法 -> 正文阅读

[开发测试]selenium基本用法

selenium基本用法

import time

from selenium import webdriver

class Tjgb:
    def __init__(self,url,if_headless=False):
        self.chrome_driver_path = r'D:\Python3.6\Scripts\chromedriver.exe'
        self.binary_location = r'C:\Program Files (x86)\Google\Chrome\Application\chrome.exe'
        self.url = url
        self.ua_pool = [
            'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36'
        ]
        self.if_headless = if_headless
        self.driver = self.base_driver()

    def opt_config(self):
        user_agent = self.ua_pool[0]
        opt = webdriver.ChromeOptions()
        if self.if_headless:
            opt.add_argument('--headless')
            opt.add_argument('-disable-gpu')
            opt.add_argument('--no-sandbox')
        opt.add_experimental_option('excludeSwitches',['enable-automation'])
        opt.add_experimental_option('useAutomationExtension',False)
        opt.add_argument('--disable-blink-features=AutomationControlled')
        opt.add_argument(f'user-agent={user_agent}')
        opt.binary_location = self.binary_location
        return opt

    def base_driver(self):
        driver = webdriver.Chrome(options=self.opt_config(),executable_path=self.chrome_driver_path)
        driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument",{
            "source":"""
            Object.defineProperty(navigator,'webdriver',{
            get:()=>undefined})"""
        })
        return driver

    def load_webpage(self):
        self.driver.get(self.url)
        time.sleep(15)
        self.driver.implicitly_wait(10)
        # li_list = self.driver.find_elements_by_xpath('//div[@class="listnews"]/ul/li')
        # li_list = self.driver.find_elements_by_xpath('//div[@id="375746"]/div/div/ul/li')
        # tag = self.driver.find_element_by_tag_name('iframe')
        # print(tag)
        self.driver.switch_to.frame('ml')
        li_list = self.driver.find_elements_by_xpath('//ul[@id="fanye"]/li')
        print(li_list)
        # li_list = self.driver.find_elements_by_xpath('//ul[@id="fanye"]/li')
        # print(li_list)
        for li in li_list:
            title = li.find_element_by_xpath('./a').get_attribute('title')
            # pub_date = li.find_element_by_xpath('./span[@class="bt-data-time"]').text
            pub_date = li.find_element_by_xpath('./span').get_attribute('textContent')
            print(title,pub_date)

        self.driver.switch_to.default_content()


    def close_driver(self):
        print(self.driver.window_handles)
        for handle in self.driver.window_handles:
            self.driver.switch_to_window(handle)
            self.driver.close()
        self.driver.quit()
        print('close all')

if __name__ == '__main__':
    # url = 'http://tjj.hefei.gov.cn/tjyw/tjgb/index.html'
    # url = 'http://jxf.jiangxi.gov.cn/col/col41574/index.html'
    url = 'http://tjj.ezhou.gov.cn/zwgk/fdzdgknr/?itemid=2392'
    tjgb = Tjgb(url=url,if_headless=False)
    tjgb.load_webpage()
    tjgb.close_driver()

selenium对iframe操作

# id
<html>
<iframe id="frame1" src="https://www.sogou.com/" name="slider"></iframe>
</html>
# 跳转到iframe
driver.switch_to.frame("frame1")

# name
<html>
<iframe id="frame1" src="https://www.sogou.com/" name="slider"></iframe>
</html>
# 跳转到iframe
driver.switch_to.frame("slider")

# 元素定位
<iframe tab-id="12c8792" frameborder="0" src="xx/xx/xxx.html" scrolling="yes" class="x-iframe" cd_frame_id_="d5234f1"></iframe>
#跳转到iframe
iframe_elem = driver.find_element_by_class_name('x-iframe').find_element_by_tag_name('iframe')
driver.switch_to.frame(iframe_elem)

多个iframe嵌套

<html>
    <iframe id="frame1">
        <iframe id="frame2" / >
    </iframe>
</html>

# 一层层跳进去
driver.switch_to.frame("frame1")
driver.switch_to.frame("frame2")

# 跳出iframe
# 1.跳转到iframe后,返回到主窗体
drvier.switch_to.default_content()

# 2.存在多个iframe,跳转到二级iframe后,返回上一级的iframe:
drvier.switch_to.parent_frame()
  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-12-02 17:03:49  更:2021-12-02 17:05:36 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/18 4:40:37-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码