selenium12-浏览器查看信息技巧

selenium中元素定位的方法基本已经讲解完成,那么接下来主要讲解一些selenium的实用操作技巧。本篇主要讲解“浏览器查看信息技巧”的一些方法,包括“获取当前窗口title,url地址,截屏以及切换窗口的操作”,希望感兴趣的小伙伴可以坚持看下去同时欢迎提出宝贵的意见让我们一起进步!

前置条件:
from selenium import webdriver
driver=webdriver.Chrome()
driver.implicitly_wait(5)
driver.get('https://www.baidu.com')
01:获取当前窗口title(driver.title)
(1)获取并打印百度初始页面titlle
print(driver.title)
(2)获取并打印输入完关键字后页面tittle:只要判断这个元素存在就证明页面已加载成功
driver.find_element_by_id('1')
driver.find_element_by_id('kw').send_keys('python百度百科\n')
print(driver.title)
02:获取当前窗口地址栏url(driver.current_url)

注意:随着窗口内容标题更新时,title和current_url也会随之而更新。页面更新时可以通过查找更新页面的元素来判断页面加载完成

(3)获取并打印当前页面url地址
print(driver.current_url)
03:截屏(整个页面和单页面)

①整个页面:driver.get_screenshot_as_file(img_path)

②单个页面:web_element screenshot(img_path)

注意:截图单个页面需要先获取到这个图片对应的元素,然后再调用 screenshot 方法

(4)获取整个页面截图并存在指定文件路径
driver.get_screenshot_as_file('C:\\Users\\qin\\Desktop\\1.png')
(5)获取页面的单个元素
ele=driver.find_element_by_id('lg')
ele.screenshot('C:\\Users\\qin\\Desktop\\12.png')
driver.quit()
04:切换窗口

1)概述:切换到新的窗口操作

①通过循环遍历driver.window_handles获取当前浏览器所有窗口的handle
driver.switch_to.window(handle)方法切入新窗口
③检查该窗口特点,是否为要切入的那个
切换到最初的窗口:保存主窗口handle

2)关闭当前窗口方法: driver.close()

3)注意事项:切入到新窗口的时候就失去了对原来窗口的控制权,如果想点击原来窗口的元素是没有效果的。想回到最初的窗口可以把当前的 handle 字符串保存下来。

(1)需求描述:百度松勤点击第一个搜索结果,跳转到一个新的窗口并点击“全部课程分类”
driver.find_element_by_id('kw').send_keys('松勤\n')
driver.find_element_by_css_selector('[id="1"] h3 a').click()
driver.find_element_by_css_selector('span [href="/course/explore"]').click()
(2)执行结果:NoSuchElementException: Message: no such element: Unable to locate element
(3)原因解释:driver 对象只能操作之前控制的第一个打开的窗口,不能控制新打开的窗口
(4)解决方法:通过切换窗口来解决
通过切换窗口后的代码如下:
driver.find_element_by_id('kw').send_keys('松勤\n')
driver.find_element_by_css_selector('[id="1"] h3 a').click()
# 保存主窗口handle
mainWindow = driver.current_window_handle
for handle in driver.window_handles:
    # 切换到新窗口
    driver.switch_to.window(handle)
    # 通过当前网页标题来判断是否为要切入的窗口
    if '软件测试在线教育领跑者'in driver.title:
        break
driver.find_element_by_css_selector('span [href="/course/explore"]').click()
#关闭当前窗口
driver.close()
#切换到主窗口
driver.switch_to.window(mainWindow)
#清空之前输入的内容
input_ele=driver.find_element_by_id('kw')
input_ele.clear()
#重新输入搜索内容
driver.find_element_by_id('kw').send_keys('python百度百科\n')

你可能感兴趣的:(selenium12-浏览器查看信息技巧)