插件
    selenium对应谷歌的版本号
    下载插件
    下载版本号一样或者相近的
    http://npm.taobao.org/mirrors/chromedriver
    Xpath 定位元素
    //imput[@id=”su”]
    Fn+f12键
    image.png
    三个点。最左边键,ctrl+f
    为啥要学这个,因为python无法识别html代码。
    我们用的自动化测试工具式selenium,使用python语言控制
    python只能识别xpath

    image.png
    是一种一对一对的标签组成的语言,一对标签
    除了标签名以外的都是属性,多个属性中间,逗号隔开
    属性唯一定位
    Id >name

    values
    尽量不要用,用唯一定位的,因为性能更好
    image.png

    进入pycharm
    建立文件夹automationtest
    From selenium import webdriver
    fromseleniumimportwebdriver

    driver=webdriver.Chrome()
    driver.get(http://www.baidu.com)
    get方法就是双击浏览器,进入www.baidu.com
    get()
    quit()
    xxxx_loc
    find_element_by_xpath()
    send_keys()
    #locator是定位器的意思
    sou_suo_kuang_loc=‘//input[@id=”kw”]’
    sou_suo_nei_rong=‘凡猫’
    driver.find_element_by_xpath(sou_suo_kuang_loc).send_keys(sou_suo_nei_rong)

    image.png

    image.png

    #最好的写法
    sou_suo_kuang=driver.find_element_by_xpath(sou_suo_kuang_loc)
    sou_suo_kuang.send_keys(sou_suo_nei_rong)发送



    baidu_yi_xia_loc=‘//input[@id=”su”]’
    baidu_yi_xia=driver.find_element_by_xpath(baidu_yi_xia_loc)
    baidu_yi_xia.click()点击


    #查找百度搜索的结果


    xiang_guan_jie_guo_loc=‘//span[@class=”nums_text”]’
    xiang_guan_jie_guo=driver.find_element_by_xpath(xiang_guan_jie_guo_loc)
    print(xiang_guan_jie_guo.text)
    if xiang_guan_jie_guo.text==‘百度为您找到相关结果约5,900,000’:
    #
    print(‘success’)
    else:
    print(‘false’)
    #模糊查询contains=包含
    #//span[contains(text(),”百度为您找到相关结果约”)]
    _xsu_loc=’//a[contains(text(),”学”)]’

    #
    image.png
    sleep(5)
    driver.quit()

    fromseleniumimportwebdriver
    fromtimeimportsleep

    jiemian=‘//img[@width=”270px”and@height=”129px”]’

    driver=webdriver.Chrome()
    url=http://www.baidu.com
    driver.get(url)
    driver.maximizewindow()#最大化浏览器

    学术_loc=‘//a[contains(text(),”学”)]’
    #学术元素的xpath定位表达式(定位器)
    学术=driver.find_element_by_xpath(学术_loc)
    #定位“学术”元素
    学术.click()
    #点击“学术”元素
    sleep(2)
    #会打开一个新窗口,等待2秒看效果
    窗口标题=driver.title
    print(‘当前窗口的标题:{}’.format(窗口标题))
    当前窗口的句柄=driver.current_window_handle
    print(‘当前窗口的句柄:{}’.format(当前窗口的句柄))
    所有窗口的句柄
    列表=driver.windowhandles
    print(‘打印出所有窗口的句柄:{}’.format(所有窗口的句柄
    列表))
    #新窗口一般是这个列表的最后一个列表元素,
    #原先只有一个句柄,下标是0,新窗口的句柄下标是1
    学术窗口的句柄=所有窗口的句柄列表[1]
    driver.switch_to.window(学术窗口的句柄)
    #根据窗口句柄,切换到指定窗口
    窗口标题=driver.title
    print(‘切换到新窗口后的标题:{}’.format(窗口标题))
    if窗口标题==‘百度学术-保持学习的态度’:
    #if’学术’in窗口标题:_
    print(‘学术页面被成功打开了’)
    else:
    print(‘学术页面打开失败了’)

    sleep(3)
    driver.quit()
    image.png

    image.png

    image.png

    安装selenium:pip install selenium
    驱动:可以理解成类似汽车的变速箱
    chrome浏览器,需要下载对应版本的selenium webdriver
    xpath:表达式代码,表达定位(唯一定位)页面元素的位置(python 只能识别xpath
    调试器打开,定位,拿到位置,转译为xpath代码
    //标签名[@属性名='值'] 单个属性
    //标签名[@属性名='值' and @属性名='值' ] 多属性唯一定位用and
    //标签名[contains(text(), "模糊定位的内容") ] 通过内容模糊定位
    标签名不要用
    号,用固定的标签名,性能会更好
    selenium.webdiver.Chrome() 使用Chrome浏览器的驱动
    get() 打开浏览器,访问预期的页面
    maxmize_window() 最大化窗口
    find_element_by_xpath('xpath表达式') 通过xpath找到预期元素 find_element_by_xpath('xpath表达式') .text 通过xpath找到预期元素 的内容
    quit() 关闭浏览器
    send_key('内容') 通过键盘输入内容
    click() 模仿鼠标单击
    title 获取窗口标题
    重点:web浏览器可能会有很多窗口,但是窗口也有唯一ID,别名“句柄” handle
    current_window_handle 获取当前窗口句柄
    window_handles 获取所有窗口句柄(获取出来的是列表)
    switch_to.window(窗口句柄) 通过窗口句柄将webdriver的控制跳转到对应窗口
    io(就是input)