美文网首页
selenium常用方法

selenium常用方法

作者: 王文强Python | 来源:发表于2020-07-11 18:29 被阅读0次

    一、操作页面的方法

    1.获取当前页面的Url函数
    方法:current_url
    实例:driver.current_url
    
    2.获取元素坐标
    方法:location
    解释:首先查找到你要获取元素的,然后调用location方法
    实例:driver.find_element_by_xpath("//*[@id='tablechart']/tbody/tr[14]/td[9]").location
    
    3.表单的提交
    方法:submit
    解释:查找到表单(from)直接调用submit即可
    实例:driver.find_element_by_id("form1").submit()
    
    4.获取CSS的属性值
    方法:value_of_css_property(css_name)
    实例:driver.find_element_by_css_selector("input.btn").value_of_css_property("input.btn")
    
    5.获取元素的属性值
    方法:get_attribute(element_name)
    实例:driver.find_element_by_id("sellaiyuan").get_attribute("sellaiyuan")
    
    6.判断元素是否被选中
    方法:is_selected()
    实例:driver.find_element_by_id("form1").is_selected()
    
    7.返回元素的大小
    方法:size
    实例:driver.find_element_by_id("iptPassword").size
    返回值:{'width': 250, 'height': 30}
    
    8.判断元素是否显示
    方法:is_displayed()
    实例:driver.find_element_by_id("iptPassword").is_displayed()
    
    9.判断元素是否被使用
    方法:is_enabled()
    实例:driver.find_element_by_id("iptPassword").is_enabled()
    
    10.获取元素的文本值
    方法:text
    实例:driver.find_element_by_id("iptUsername").text
    
    11.元素赋值(输入内容)
    方法:send_keys(*values)
    实例:driver.find_element_by_id("iptUsername").send_keys('admin')
               element.send_keys('输入的内容') #输入内容
    注意如果是函数需要增加转义符u,eg.
    driver.find_element_by_id("iptUsername").send_keys(u'青春')
    
    12.返回元素的tagName
    方法:tag_name
    实例:driver.find_element_by_id("iptUsername").tag_name
    
    13.删除浏览器所以的cookies
    方法:delete_all_cookies()
    实例:driver.delete_all_cookies()
    
    14.删除指定的cookie
    方法:delete_cookie(name)
    实例:deriver.delete_cookie("my_cookie_name")
    
    15.关闭浏览器
    方法:close()
    实例:driver.close()
    
    16.关闭浏览器并且推出驱动程序
    方法:quit()
    实例:driver.quit()
    
    17.返回上一页
    方法:back()
    实例:driver.back()
    
    18.设置等待超时
    方法:implicitly_wait(wait_time)
    实例:driver.implicitly_wait(30)
    
    19.浏览器窗口最大化
    方法:maximize_window()
    实例:driver.maximize_window()
    
    20.查看浏览器的名字
    方法:name
    实例:drvier.name
    

    二、获取html文件后再进行解析(翻页)

    from bs4 import BeautifulSoup
    from lxml import etree
        
        #案例一:从本地读取html静态文件
        Path = f'{current_dirname}/index.html'
        with open(Path, encoding="utf-8") as f:
            html = f.read()
    
        #案例二:selenium翻页后获取html页面:
        driver.find_element_by_xpath(r"下一页的xpath路径").click()
        html = driver.page_source()  #获取翻页后新页面的源码
    
        #转化方式一: 将获取到的新页面转成xpath可以解析的对象
        page_source = etree.HTML(html.encode('utf-8'))
        lilist = page_source.xpath("/html/body/div[3]/div[7]/ul/li")
    
        # 转化方式二:将获取到的新页面转成 bs4 可以解析的对象
        soup = BeautifulSoup(html,'lxml')
        items = soup.find_all('#id')
    

    三、多页面切换

    from selenium import webdriver
    import time
     
    browser = webdriver.Chrome()
    first_url='http://www.baidu.com'
    browser.find_element_by_xpath('//div/div/div/ul/li[1]/strong/a').click()
    browser.switch_to_window(browser.window_handles[0])
    browser.title  #第一个页面
    browser.switch_to_window(browser.window_handles[1])
    browser.title  #最后一个页面
    browser.quit()
    
    如果打开多个浏览器句柄和标签页的对应关系:
    标签页顺序(按照打开顺序):1 2 3 4 5
                              对应的句柄   :0 4 3 2 1
    

    四、定位

    1、CSS定位
    driver.find_element_by_css_selector('#id')
    driver.find_element_by_css_selector('.classname')
    driver.find_element_by_css_selector('input')
    driver.find_element_by_css_selector('[id="id"]')
    # 组合形式定位
    driver.find_element_by_css_selector('input.classname')
    driver.find_element_by_css_selector('#input > span > a')
    

    相关文章

      网友评论

          本文标题:selenium常用方法

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