• Selenium之webdriver的基础操作


    webdriver的基础操作

    from selenium import webdriver
    
    driver = webdriver.Chrome()
    
    driver.get(url='http://www.baidu.com')
    driver.find_element()  # 定位标签
    print(driver.title)
    driver.close()  # 关闭当前窗口
    print(driver.page_source)  # 获取页面的内置
    # 设置浏览器的大小
    driver.set_window_size(800, 600)
    print(driver.get_window_size())  # 获取浏览器窗口的大小
    driver.save_screenshot('a.png')  # 屏幕截图,保存图片的类型必须是png
    driver.refresh()  # 刷新
    driver.back()  # 后退
    driver.forward()  # 前进
    driver.get_cookie()  # 获取cookies
    driver.current_url  # 获取当前window窗口的url
    driver.current_window_handle  # 获取当前窗口对象
    driver.execute_script("aler('你好啊')")  # 执行JS代码

    常用的标签选择器

    1.根据id定位
    2.根据class定位
    3.根据tag name定位
    4.根据超链接定位
        1.绝对定位
        2.模糊定位
    5.根据xpath定位,根据dom树来定位,每个标签在dom树中都有自己的节点
    6.根据css selecter(样式)
    7.定位input框,根据name属性定位
    8.by选择器,封装了上面几种定位形式

    标签选择器的定位

    driver.find_element_by_id('kw').send_keys('id')
    driver.find_element_by_class_name('s_ipt').send_keys('class')
    driver.find_element(by=By.ID, value='kw').send_keys('By')
    driver.find_element_by_css_selector('input[class=s_ipt]').send_keys('CSS')
    driver.find_element_by_name('wd').send_keys('name')
    driver.find_element_by_link_text()
    driver.find_element_by_partial_link_text()
    driver.find_element_by_tag_name('').click()
    
    CSS 选择器
    driver.find_element_by_css_selector('input[class ^=s_]')  # 匹配以s_开头的class值
    driver.find_element_by_css_selector('input[class $=pt]')  # 匹配以pt结尾的class值
    driver.find_element_by_css_selector('input[class *=_i ]')  # 匹配包含_i的class值
    driver.find_element_by_css_selector('.s_ipt').send_keys('css可好')
    driver.find_element_by_css_selector('input.s_ipt').send_keys('厉害了css')
    driver.find_element_by_css_selector('#kw').send_keys('css id来了')
    driver.find_element_by_css_selector('input#kw').send_keys('无敌css')

    input_obj = driver.find_element_by_id("id_user")
    # 为input框填写值
    input_obj.send_keys('你好')
    # 获取input框的值
    input_obj.get_attribute('value')
    # 获取input框的属性
    input_obj.get_attribute('class')
    input_obj.get_property('name')
    # 获取标签的css样式
    input_obj.value_of_css_property('color')
    # 获取标签中的子标签
    div_obj = driver.find_element_by_class_name('col-xs-3')
    div_obj.find_element_by_tag_name('input').submit()
    # 获取验证码图片的大小
    driver.find_element_by_id('imageCode').size
    幻想毫无价值,计划渺如尘埃,目标不可能达到。这一切的一切毫无意义——除非我们付诸行动。
  • 相关阅读:
    golang 的几个入门资料
    docker 容器网络基础
    nginx 容器反向代理网址的设置
    【知乎Live】狼叔:如何正确的学习Node.js
    nginx资料汇总
    web 框架
    work behind corp proxy
    [转载] 历史上前端领域的重要技术革命
    前后端要不要分离以及如何做
    微电子工艺基础知识讲解(集成电路历史/厂商/产业链)
  • 原文地址:https://www.cnblogs.com/TodayWind/p/14903573.html
Copyright © 2020-2023  润新知