美文网首页
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