Web的自动化测试工具Selenium——第04节 浏览器控制-灵析社区

熊Sir

第04节 浏览器控制

1. 修改浏览器窗口大小

webdriver 提供 set_window_size() 方法来修改浏览器窗口的大小

from selenium import webdriver

# 初始化浏览器驱动程序,这里使用Chrome作为示例
driver = webdriver.Chrome()

# 最大化浏览器窗口
driver.maximize_window()

# 或者设置特定大小的窗口
# driver.set_window_size(1024, 768)  # 传递所需的宽度和高度

# 访问网页
driver.get("https://www.example.com")

# 在这里执行其他操作...

# 关闭浏览器
driver.quit()

2. 浏览器前进&后退

要在 Selenium 中执行浏览器的前进和后退操作,你可以使用 forward()back() 方法

# 在这里执行其他操作...

# 执行前进操作
driver.forward()

# 执行后退操作
driver.back()

# 在这里执行其他操作...

请注意,前进和后退操作通常依赖于浏览器的历史记录。如果浏览器历史记录中没有前进或后退的页面,这些方法可能不会执行任何操作。因此,在使用前进和后退之前,确保浏览器已经访问了多个页面以建立历史记录

3. 浏览器刷新

要在Selenium中执行浏览器刷新操作,你可以使用refresh()方法。以下是一个示例,演示如何在Python中使用Selenium来刷新浏览器页面:

from selenium import webdriver

# 刷新浏览器页面
driver.refresh()

这个方法将会重新加载当前页面,就像用户手动点击浏览器的刷新按钮一样。刷新操作可用于重新加载页面内容,以确保你的测试脚本在页面状态变化时可以重新加载页面

4. 浏览器窗口切换

在 Selenium 中,要切换浏览器窗口,你可以使用 window_handles 属性来获取当前打开的所有窗口句柄,然后使用 switch_to.window() 方法切换到特定的窗口句柄。以下是一个示例,演示如何在 Python 中使用 Selenium 来切换浏览器窗口:

from selenium import webdriver

# 初始化浏览器驱动程序,这里使用Chrome作为示例
driver = webdriver.Chrome()

# 打开第一个网页
driver.get("https://www.example1.com")

# 打开第二个网页
driver.execute_script("window.open('https://www.example2.com', '_blank');")

# 获取所有窗口句柄
window_handles = driver.window_handles

# 切换到第二个窗口
driver.switch_to.window(window_handles[1])

# 在第二个窗口执行操作

# 切换回第一个窗口
driver.switch_to.window(window_handles[0])

# 在第一个窗口执行操作

# 关闭浏览器
driver.quit()

在上述示例中,我们首先打开两个不同的网页,然后使用 window_handles 获取所有窗口句柄。通过切换到不同的窗口句柄,我们可以在不同的浏览器窗口中执行操作

请注意,窗口句柄的索引通常是从 0 开始的,所以第一个窗口的句柄是 window_handles[0] ,第二个窗口的句柄是 window_handles[1] ,依此类推。你可以根据需要切换到其他窗口句柄以执行操作

窗口句柄(Window Handle)是一个用来唯一标识浏览器窗口的标识符或引用。每当你打开一个新的浏览器窗口或标签页时,浏览器会为该窗口分配一个唯一的句柄。这些句柄是在浏览器级别分配的,用于标识不同的浏览器窗口或标签页,以便在多窗口浏览器环境中进行切换和操作

在 Selenium 等自动化测试工具中,窗口句柄用于控制和切换不同的浏览器窗口,以便在多个窗口之间执行操作。通过获取窗口句柄,你可以将焦点从一个窗口切换到另一个窗口,从而执行各种操作,例如在不同窗口之间切换、操作弹出窗口等

窗口句柄通常是一个字符串,你可以使用它来定位和操作特定的浏览器窗口。在 Selenium 中,你可以使用 window_handles 属性来获取当前打开的所有窗口句柄,然后使用 switch_to.window() 方法切换到特定的窗口句柄。这使得在多窗口浏览器环境中进行自动化测试或操作变得更加容易

5. 常见操作

当使用 Selenium WebDriver 或类似的自动化测试工具时,这些方法可以用于与 Web 页面的元素进行交互和获取信息。以下是每个方法的使用示例:

1. send_keys(): 模拟输入指定内容

from selenium import webdriver

driver = webdriver.Chrome()
driver.get("https://example.com")

# 找到输入框元素并输入文本
input_element = driver.find_element_by_id("username")
input_element.send_keys("myusername")

在这个例子中,send_keys() 方法模拟在具有 id 为 “username” 的输入框中输入 “myusername”

2. clear(): 清除文本内容

# 清除输入框中的文本
input_element.clear()

clear() 方法用于清除之前输入框中的文本内容

3. is_displayed(): 判断该元素是否可见

# 检查元素是否可见
if input_element.is_displayed():
    print("Input element is visible on the page.")
else:
    print("Input element is not visible on the page.")

is_displayed() 方法用于检查页面上的元素是否可见。在这个例子中,如果输入框可见,将会打印 “Input element is visible on the page.”

4. get_attribute(): 获取标签属性值

# 获取元素的href属性值
link_element = driver.find_element_by_link_text("Example Link")
href_value = link_element.get_attribute("href")
print("Href attribute value is:", href_value)

size 是一个属性,用于返回元素的宽度和高度。在这个例子中,它获取输入框元素的尺寸

6. text: 返回元素文本

# 获取元素的文本内容
paragraph_element = driver.find_element_by_css_selector("p")
paragraph_text = paragraph_element.text
print("Paragraph text is:", paragraph_text)

text 是一个属性,用于返回元素的文本内容。在这个例子中,它获取 <p> 元素的文本内容

6. 示例 CSDN页面元素交互

# coding=utf-8
import time

from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()

driver.get('https://www.csdn.net/')
time.sleep(2)
# 定位搜索输入框
text_label = driver.find_element(By.ID, "toolbar-search-input")

# 在搜索框中输入 东离与糖宝
text_label.send_keys('东离与糖宝')
time.sleep(2)

# 清除搜索框中的内容
text_label.clear()
time.sleep(2)

# 输出搜索框元素是否可见
print(text_label.is_displayed())
# 输出placeholder的值
print(text_label.get_attribute('placeholder'))

# 定位搜索按钮
button = driver.find_element(By.ID, 'toolbar-search-button')
# 输出按钮的大小
print(button.size)
# 输出按钮上的文本
print(button.text)

'''输出内容
True
搜CSDN
{'height': 32, 'width': 88}
搜索
'''


阅读量:2113

点赞量:0

收藏量:1