浏览器查看信息技巧和弹出框处理、多窗口切换

浏览器查看信息技巧?

    webdriver对象的一些方法:

         * 获取当前窗口的title   driver.title

         * 获取当前窗口的地址url  driver.current_url

         * 随着用户的操作  title和current_url会变化

         * 截屏     driver.get_screenshot_file('ssl.png')

     关于双反斜杠和r的解释:

          双反斜杠'\'是为了防止转义  我们常用 '/'来表示相对路径  用 ‘’来表示绝对路径

          写法一:path = ‘C:\adb\selenium’

          写法二:path =r 'C:adbselenium'

          写法三:path = 'C:/adb/selenium'

 

代码实现:

from selenium import webdriver

# 指定是Chrome驱动

driver = webdriver.Chrome(r"C:webdriverchromedriver.exe")

# driver.implicitly_wait(10)   隐式等待

driver.get('https://www.baidu.com')

# driver.get('https://music.163.com')

# print(driver.title)

# print(driver.current_url)

# driver.get_screenshot_as_file('c:\pei.png')

# 如果我想部分截屏,可以通过查找元素来定位

ele = driver.find_element_by_css_selector('#su')

ele.screenshot('button.png')    # 百度一下的图片

driver.quit()

=========================================================================================================================

切换窗口?

     切换到新的窗口里面操作:

            * 循环遍历  driver.window_handles

            * driver.switch_to.window(handle)方法切入新窗口

            * 检查该窗口特点,是否为要切入的那个

      切换到最初的窗口:

            * 保存主窗口的handle   driver.current_window_handle

      关闭窗口:

            * close方法

     

 

 

*注意*:close()与quit()方法发热区别:close()是关闭当前窗口,而quit()是退出浏览器所有的窗口,但是不会退出chromedriver驱动,但仍处于代码可执行状态。

代码实现:

import time

from selenium import webdriver

driver = webdriver.Chrome(r"C:webdriverchromedriver.exe")

driver.implicitly_wait(10)

driver.get('https://www.baidu.com/')

print(driver.title)

driver.find_element_by_id('kw').send_keys('松勤 ')

time.sleep(1)

driver.find_element_by_css_selector('div[id="1"] h3.t>a').click()

time.sleep(1)

print(driver.title)

# 获取当前页面的句柄

main_handle = driver.current_window_handle

# 获取所有句柄

handles = driver.window_handles

for handle in handles:

      print(handle)

      driver.switch_to.window(handle)

     if '松勤网 - 松勤软件测试' in driver.title:

            print('成功跳转')

            break

# 点击全部课程分类

driver.find_element_by_css_selector('a[href="/course/explore"]').click()

time.sleep(5)

# 切换到首页句柄

driver.switch_to.window(main_handle)

print(driver.title)

 

driver.quit()

 

=========================================================================================================================


弹出框处理?

     对话框来说一般有三种:alert     confirm       prompt

     操作方法:driver.switch_to.alert.accept()  # 点击OK

                   driver.switch_to.alert.text    # 得到对话框内容

                   driver.switch_to.alert.dismiss()  # 点击Cancel

                   driver.switch_to_alert.send_keys()   # 输入内容

下面附上a1.html代码截图:

                           

     

代码实现:

import time

from selenium import webdriver

driver = webdriver.Chrome(r"C:webdriverchromedriver.exe")

# driver.implicitly_wait(10)

driver.get('file:///C:/Users/Administrator/PycharmProjects/1120/web_driver/lesson4/al.html')

driver.find_element_by_id('b3').click()

time.sleep(3)

# driver.switch_to.alert.accept()   # 点击OK的弹窗

# driver.switch_to.alert.dismiss()  # 点击Cancel(有确定、取消的弹窗)

txt = driver.switch_to.alert.text    # 得到对话框内容

print(txt)

driver.switch_to.alert.send_keys('天天向上')

driver.switch_to.alert.accept()

# driver.find_element_by_id('other').click()

# driver.quit()

 

=========================================================================================================================

刷新页面、前进、后退?

    * 刷新页面  refresh

    * 前进  forword

    * 后退  back

代码实现:

import time

from selenium import webdriver

driver = webdriver.Chrome(r"C:webdriverchromedriver.exe")

# ----------------------------------

driver.get('http://check.ytesting.com')

driver.find_element_by_id('username').send_keys('sdfdsf')

driver.find_element_by_id('password').send_keys('sdfdsf')

time.sleep(2)

# driver.refresh()

driver.back()

driver.forward()

# ----------------------------------

input('press any key to quit...')

driver.quit()   # 浏览器退出

原文地址:https://www.cnblogs.com/peipei-Study/p/11890117.html