美文网首页
2019-06-13 chrome自动化测试

2019-06-13 chrome自动化测试

作者: 浪尖的游鱼 | 来源:发表于2019-06-13 08:57 被阅读0次

本意是想解决下xxqg的问题的,想看下自动化框架的问题,直接摸到了自动化测试中的chrome工具chromedriver。用接下来的示例看看吧。

安装

访问https://chromedriver.storage.googleapis.com/index.html
下载适配你chrome版本的chromedriver,放到个人的chrome安装目录
了解下selenium ,看下关于自己的语言如何介入。

测试缘由

有位大佬在做SEO优化,想帮他测下关键词排名,顺带刷榜,本来直接爬是个超级简单的方式,正好看到这个,画蛇添足下。

示例 by python

# coding=utf-8

from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

import os,time,re

# 引入 chromedriver.exe
chromedriver = r"C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe"
os.environ["webdriver.chrome.driver"] = chromedriver
browser = webdriver.Chrome(chromedriver)

# 设置浏览器需要打开的 url
url = "https://www.baidu.com"
browser.get(url)
time.sleep(5)
# 在百度搜索框中输入关键字 " 扫描仪 "
lists = ["打印机","复印机","扫描仪"......]
for list in lists:
    find_input = browser.find_element_by_id("kw")
    find_input.send_keys(list)
    time.sleep(1)
    # 单击搜索按钮
    browser.find_element_by_id("su").click()
    time.sleep(5)
    find_it = False
    ass = 1
    # bss = 0
    link_text = ""

    while True:
        try:
            
            # get_urls = browser.find_elements_by_class_name("t")
            #根据观察,所有百度所有连接都有class = t,这是一个很好的切入口
            get_urls = browser.find_elements_by_class_name("t")
            if len(get_urls) == 0 :
                
                try:
                    #测试下一页的按钮,并给予10秒等待,以防止页面未加载
                    element = WebDriverWait(browser, 10).until(EC.presence_of_element_located((By.LINK_TEXT, "下一页>")))
                    element.click()
                except Exception as identifier:
                    .........
                    print("Sry.Not find")
                    break
                ass += 1
                time.sleep(2)
                continue
            else:
                for get_url in get_urls:
                    # bss += 1
                    #匹配关键词
                    a = re.match('xxxx',get_url.text)
                    if re.match('xxxx',get_url.text) != None:
                        # get_url.click()
                        find_it = True
                        link_text = get_url.text
                        print(link_text)
            if not find_it:
                
                try:
                    #测试下一页的按钮,并给予10秒等待,以防止页面未加载
                    element = WebDriverWait(browser, 10).until(EC.presence_of_element_located((By.LINK_TEXT, "下一页>")))
                    element.click()
                except Exception as identifier:
                    ........
                    print("Sry.Not find")
                    break
                ass += 1
                time.sleep(2)
                # bss = 0
                continue
            else:
                print('Find it!')
                time.sleep(2)
                #点击链接
                # get_url.click()
                .......
                break
            
        except Exception as es:
            print('Not Find')
            try:
                #测试下一页的按钮,并给予10秒等待,以防止页面未加载
                element = WebDriverWait(browser, 10).until(EC.presence_of_element_located((By.LINK_TEXT, "下一页>")))
                element.click()
            except NoSuchElementException as identifier:

                .......
                print("Sry.Not find")
                break
            
            ass += 1
            time.sleep(2)
            # bss = 0
            continue
    if find_it :
        print('这是在第几页:'+str(ass))
        # print('这是在第几个:'+str(bss))
    
    find_input.clear()
    print('')
    print('------------------------------------')
    # 通过筛选器找到next
    


time.sleep(5)
# 回退
# browser.back()
time.sleep(1000)
# 关闭浏览器
browser.quit()

相关文章

网友评论

      本文标题:2019-06-13 chrome自动化测试

      本文链接:https://www.haomeiwen.com/subject/ibodfctx.html