zoukankan      html  css  js  c++  java
  • selenium基本操作

    总结了一下自己自学的一些心得与大家分享一下

    下面是自己整理了一些selenium的基础api 

     1 #导入浏览器模块
     2 from selenium import webdriver 
     3 #打开浏览器
     4 drive = webdriver.chorme()
     5 #访问网站
     6 driver.get(url)
     7 #窗口最大化
     8 driver.maximize_window()
     9 #窗口最小化
    10 driver.minimize_window()
    11 #设置浏览器尺寸
    12 driver.set_window_size(1480, 1800)
    13 #关闭当前窗口
    14 driver.close()
    15 #关闭所有窗口
    16 driver.quiet
    17 #前进
    18 driver.forword()
    19 #后退
    20 driver.back()
    21 #刷新
    22 driver.refresh()
    23 #h获取当前路径
    24 driver.current_url
    25 #获取当前标题
    26 driver.title
    27 # elements代表定位一组元素而element单个
    28 #根据ID定位单独元素或元素集合
    29 driver.find_element_by_id()
    30 driver.find_elements_by_id()
    31 #根据tag_name定位单独元素或元素集合
    32 driver.find_element_by_tag_name()
    33 driver.find_elements_by_tag_name()
    34 #根据className定位单独元素或者元素集合
    35 driver.find_element_by_class_name()
    36 driver.find_elements_by_class_name()
    37 #根据链接文本定位
    38 driver.find_element_by_link_text()
    39 driver.find_elements_by_link_text()
    40 #根据部分链接文本定位
    41 driver.find_element_by_partial_link_text()
    42 driver.find_elements_by_partial_link_text()
    43 #根据xpath定位
    44 driver.find_element_by_xpath()
    45 driver.find_elements_by_xpath()
    46 #根据name定位
    47 driver.find_element_by_name()
    48 driver.find_elements_by_name()
    49 #根据css定位
    50 driver.find_element_by_css_selector()
    51 driver.find_elements_by_css_selector()
    52 #点击操作
    53 el.click
    54 #像输入标签输入文本
    55 el.send_keys(data)
    56 #清空输入框
    57 el.clear()
    58 #获取文本内容
    59 el.text
    60 #获取元素属性
    61 el.get_attribute(value)
    62 #获取元素尺寸
    63 el.size
    64 #检查元素是否可见​
    65 el.is_displayed()​

     ID定位去哪儿网点击邮轮

    1 from selenium import webdriver
    2 driver = webdriver.Chrome()
    3 url = 'https://www.qunar.com/'
    4 driver.get(url)
    5 driver.find_element_by_id('__link_youlun__').click()
    6 driver.back()
    7 driver.close()

    tag_name定位百度必应搜索

     1 from selenium import webdriver
     2 import time
     3 # 开浏览器
     4 driver = webdriver.Chorme()
     5 # 访问bing搜索
     6 url = 'https://cn.bing.com/'
     7 driver.get(url)
     8 # 通过标签名进行定位,该元素要么唯一,要么是第一个
     9 el = driver.find_element_by_tag_name('input')
    10 el.send_keys('selenium')
    11 # 通过id定位到搜索按钮
    12 el_sub = driver.find_element_by_id('sb_form_go')
    13 # 点击搜索
    14 el_sub.click()
    15 time.sleep(5)
    16 driver.close()

    class_name定位斗鱼直播翻页

    from selenium import webdriver
    import time
    # 开浏览器
    driver = webdriver.Chorme()
    # 访问斗鱼
    url= 'https://www.douyu.com/directory/all'
    driver.get(url)
    for i in range(10):
        # 通过class属性对应的值定位到下一页
        el_next = driver.find_element_by_class_name('shark-pager-next')
        # 点击翻页
        el_next.click()
        time.sleep(3)
    time.sleep(10)
    driver.close()

    link_text定位58同城

     1 from selenium import webdriver
     2 import time
     3 # 开一个浏览器
     4 driver = webdriver.Chrome()
     5 # 访问北京58
     6 url = 'http://bj.58.com/'
     7 driver.get(url)
     8 # 通过连接文本(可以跳转的问题)进行定位
     9 el = driver.find_element_by_link_text('租房')
    10 el.click()
    11 time.sleep(3)
    12 driver.close()

    partial_link_text定位hao123网站

     1 from selenium import webdriver
     2 import time
     3 # 开一个浏览器
     4 driver = webdriver.Chrome()
     5 # 访问百度
     6 url='https://www.baidu.com/'
     7 driver.get(url)
     8 # 通过部分连接文本进行元素定位
     9 # el = driver.find_element_by_partial_link_text('hao').click()
    10 el = driver.find_element_by_partial_link_text('123').click()
    11 time.sleep(3)

    name定位人人网登录

    from selenium import webdriver
    import time
    # 创建一个浏览器
    driver = webdriver.Chorme()
    # 访问人人网
    url = 'http://www.renren.com/'
    driver.get(url)
    # 通过name定位到账号输入
    user = driver.find_element_by_name('email')
    # 输入账号
    user.send_keys('17747385860')
    # 通过name定位到密码输入
    pwd = driver.find_element_by_name('password')
    # 输入密码
    pwd.send_keys('ab123456')
    # 通过id定位到登陆按钮
    el_sub = driver.find_element_by_id('login')
    # 点击登陆
    el_sub.click()
    time.sleep(5)
    driver.close()

    xpath定位新浪微博登录

    1 from selenium import webdriver
    2 import time
    3 driver = webdriver.Chrome()
    4 url = 'https://weibo.com/login.php'
    5 driver.get(url)
    6 driver.find_element_by_xpath('//*[@id="loginname"]').send_keys('147614')
    7 driver.find_element_by_xpath('//*[@id="pl_login_form"]/div/div[3]/div[2]/div/input').send_keys('123456')
    8 driver.find_element_by_xpath('//*[@id="pl_login_form"]/div/div[3]/div[6]/a').click()
    9 time.sleep(5)

    css_selector定位淘宝天猫超市

    1 from selenium import webdriver
    2 import time
    3 driver = webdriver.Chrome()
    4 url = 'https://www.taobao.com/'
    5 driver.get(url)
    6 driver.find_element_by_css_selector('body > div.tbh-nav.J_Module.tb-pass.tb-bg > div > ul.nav-hd > li:nth-child(3) > a').click()
    7 time.sleep(3)
    8 driver.close()

     定位一组元素58同城武汉租房

     1 from selenium import webdriver
     2 import  time
     3 driver = webdriver.Chrome()
     4 url = 'https://wh.58.com/chuzu/?PGTID=0d100000-0009-ebb3-f717-021d93569bfb&ClickID=2'
     5 driver.get(url)
     6 el = driver.find_elements_by_css_selector('body > div.list-wrap > div.list-box > ul > li > div.des > h2 > a.strongbox')
     7 print(el)
     8 for e in el:
     9     print("标题",e.text,"链接",e.get_attribute('href'))
    10 time.sleep(3)
    11 driver.close()

    刚开始还不明白一组是干嘛,目前感觉也比较少用,屡次失败解决了这个问题,

    可以先找到一个然后再找到上级,这样就可以定位出来一组了

  • 相关阅读:
    HDU 4370 0 or 1 (最短路)
    POJ 2449 Remmarguts' Date (K短路 A*算法)
    HDU 5984 Pocky ( 2016 CCPC 青岛 C)
    [leetcode-733-Flood Fill]
    [leetcode-746-Min Cost Climbing Stairs]
    OpenCV学习5-----使用Mat合并多张图像
    人体姿态的相似性评价基于OpenCV实现最近邻分类KNN K-Nearest Neighbors
    OpenCV学习4-----K-Nearest Neighbors(KNN)demo
    [leetcode-728-Self Dividing Numbers]
    [leetcode-724-Find Pivot Index]
  • 原文地址:https://www.cnblogs.com/zqxFly/p/12312997.html
Copyright © 2011-2022 走看看