zoukankan      html  css  js  c++  java
  • selenium元素定位以及点击事件

    1.先访问页面,例如百度

    运行后 火狐打开自动跳转至百度页面,并在控制台打印对应数据

     代码如下:

    from selenium import webdriver#导包
    #打开驱动
    driver = webdriver.Firefox()
    #定义url地址
    url = "http://www.baidu.com"
    #访问对应网址
    driver.get(url)
    #最大化窗口
    driver.maximize_window()
    #控制台打印浏览器窗口的长宽
    print(driver.get_window_size())
    #打印网页头部信息
    print(driver.title)
    #判断一下是不是已经跳转至百度了
    if driver.title =="百度一下,你就知道":
        #跳转之后打印
        print("已跳转")
    #控制台打印网页url
    print(driver.current_url)

    2.页面跳转

     从58的首页点击跳转到租房页面,再点击大兴

     代码如下

    from  selenium import webdriver
    #打开游览器
    driver = webdriver.Firefox()
    #定义网址58同城
    url = "https://bj.58.com/"
    #访问58网址
    driver.get(url)
    #获取句柄,打印前面的句柄
    print("点击之前",driver.window_handles)
    #用xpath的方式获取租房在58位置
    ele = driver.find_element_by_xpath(".//*[@id='fcNav']/em/a[1]")
    #点击租房
    ele.click()
    #**因为点击租房后页面会跳转,再想利用自动化定位会定位不到,所以要将句柄也跳转
    #获取句柄
    list_window = driver.window_handles
    #打印句柄
    print("点击之后",driver.window_handles)
    #将句柄切换至第二个页面
    driver.switch_to.window(list_window[1])
    #以文本的形式获取大兴的位置
    #ele1 = driver.find_element_by_link_text("大兴")
    #以xpath定位大兴
    ele1 = driver.find_element_by_xpath("html/body/div[6]/div[2]/div[2]/dl[1]/dd/a[6]")
    #点击大兴
    ele1.click()

    3.弹窗事件

     

    代码运行后

     

     

    from selenium import  webdriver
    import time
    #打开浏览器
    driver = webdriver.Firefox()
    #访问网址
    driver.get("http://www.baidu.com")
    #用id的方式定位设置
    ele = driver.find_element_by_id("s-usersetting-top")
    #点击
    ele.click()
    #用class的方式定位搜索设置
    ele1 = driver.find_element_by_class_name("setpref")
    #点击
    ele1.click()
    #id定位每页50行
    ele2 = driver.find_element_by_id("nr_3")
    #点击
    ele2.click()
    #class定位保存设置
    ele3 = driver.find_element_by_class_name("prefpanelgo")
    #点击
    ele3.click()
    #关闭弹窗
    #定义一个延迟,不然太快看不见了
    time.sleep(5)
    #关闭弹窗
    driver.switch_to.alert.accept()

    弹出框操作 

      1) 进入到弹出框中
      driver.switch_to.alert  

      2) 接收警告
      accept()

      3) 解散警告
      dismiss()

      4) 发送文本到警告框
      send_keys(data)

    4.下拉框点击

     

     

     代码如下

    from selenium import  webdriver
    import time
    driver = webdriver.Firefox()#打开浏览器
    driver.get("http://www.baidu.com")#访问url
    ele = driver.find_element_by_id("s-usersetting-top")#id定位设置
    ele.click()#点击
    ele1 = driver.find_element_by_xpath(".//*[@id='s-user-setting-menu']/div/a[2]")#xpath定位高级搜索
    ele1.click()#点击
    time.sleep(2)#延迟
    ele2 = driver.find_element_by_xpath(".//*[@id='adv-setting-gpc']/div/div[1]/i[1]")#xpath定位整个下拉框
    ele2.click()#点击
    list_ele = driver.find_elements_by_class_name("c-select-item")#获取整个下拉框
    # print(list_ele)#控制台打印下拉框
    # #循环输出下拉框内容
    # list_ele[2].click()
    for list_i in list_ele:
        print(list_i.text)
        if list_i.text =="最近一周":#对比后点击跳转
            list_i.click()

    5.8大元素定位

    代码如下

    from  selenium import  webdriver
    from selenium.webdriver.common.by import By
    #打开驱动
    driver = webdriver.Firefox()
    url = "http://www.baidu.com"
    #url = "https://cn.bing.com/"
    #访问对应网址
    driver.get(url)
    #第一种方式找元素id
    # ele = driver.find_element_by_id("kw")
    # ele.send_keys(12306)
    # ele = driver.find_element(By.ID,"kw")
    # ele.send_keys(12306)
    #第二种方式name
    # ele = driver.find_element_by_name("wd")
    # ele.send_keys(12306)
    #第三种方式class
    # ele = driver.find_element_by_class_name("s_ipt")
    # ele.send_keys(12306)
    #第四种方式xpath
    # ele = driver.find_element_by_xpath(".//*[@id='kw']")
    # ele.send_keys(12306)
    #第五种方式css
    # ele = driver.find_element_by_css_selector("#kw")
    # ele.send_keys(12306)
    #第六种方式link text
    # ele = driver.find_element_by_link_text("地图")
    # ele.click()
    #第七种partail link text
    # ele = driver.find_element_by_partial_link_text("地")
    # ele.click()
    #第八种方式tag
    # ele = driver.find_element_by_tag_name("input")
    # ele.send_keys(12306)

    6.模拟qq登录

     代码如下

    from selenium import  webdriver
    #打开游览器
    driver = webdriver.Firefox()
    #登录QQ
    url = "https://qzone.qq.com/"
    driver.get(url)
    #获取元素
    #定位表单元素
    ele_bd = driver.find_element_by_id("login_frame")
    driver.switch_to.frame(ele_bd)
    ele = driver.find_element_by_xpath(".//*[@id='switcher_plogin']")
    ele.click()
    #输入账号
    ele2 = driver.find_element_by_id("u")
    ele2.send_keys(766603163)
    #输入密码
    ele3 = driver.find_element_by_id("p")
    ele3.send_keys("lly19845291024")
    
    ele4 = driver.find_element_by_id("login_button")#定位登录按钮
    ele4.click()
  • 相关阅读:
    自定义异常
    异常处理
    以圆类 Circle 及立体图形类 Solid 为基础设计圆锥类 Cone
    以圆类 Circle 及立体图形类 Solid 为基础设计圆柱类 Cylinder
    《大道至简:软件工程实践者的思想》读后感
    以点类 Point 及平面图形类 Plane 为基础设计圆类 Circle
    以圆类 Circle 及立体图形类 Solid 为基础设计球类 Sphere
    以点类 Point 及平面图形类 Plane 为基础设计三角形类 Triangle
    设计并实现大数类 BigNum
    支付宝支付(三)—APP支付(alipay.trade.app.pay)
  • 原文地址:https://www.cnblogs.com/wangxudong01/p/14500840.html
Copyright © 2011-2022 走看看