0


Selenium Python教程第7章:Selenium编程其它功能

在这里插入图片描述

7. Selenium其它功能

7.1 Action Chains 动作链功能

WebDriver只能模拟针对特定元素的click, send_keys 操作,无法执行鼠标移动、悬浮、按键,选择菜单等操作,需要通过 Action Chains 类来操作
如下面操作,打开主菜单项后,再点击弹出的子菜单项

menu = driver.find_element_by_css_selector(".nav")
hidden_submenu = driver.find_element_by_css_selector(".nav # submenu1")
ActionChains(driver).move_to_element(menu).click(hidden_submenu).perform()

也可以将多个动作排队,最后再执行

menu = driver.find_element_by_css_selector(".nav")
hidden_submenu = driver.find_element_by_css_selector(".nav # submenu1")
  
actions = ActionChains(driver)
actions.move_to_element(menu)
actions.click(hidden_submenu)
actions.perform()

Selenium Python动作链支持的操作
可以使用动作链执行大量操作,例如单击,右键单击等。以下是动作链中使用的重要方法的列表
MethodDescriptionclickClicks an element.click_and_holdHolds down the left mouse button on an element.context_clickPerforms a context-click (right click) on an element.double_clickDouble-clicks an element.drag_and_dropHolds down the left mouse button on the source element, then moves to the target element and releases the mouse button.drag_and_drop_by_offsetHolds down the left mouse button on the source element, then moves to the target offset and releases the mouse button.key_downSends a key press only, without releasing it.key_upReleases a modifier key.move_by_offsetMoving the mouse to an offset from current mouse position.move_to_elementMoving the mouse to the middle of an element.move_to_element_with_offsetMove the mouse by an offset of the specified element, Offsets are relative to the top-left corner of the element.performPerforms all stored actions.pausePause all inputs for the specified duration in secondsreleaseReleasing a held mouse button on an element.reset_actionsClears actions that are already stored locally and on the remote endsend_keysSends keys to current focused element.

7.2 Alert 告警提示窗口相关操作

Selenium中的告警窗是一个小消息框,出现在屏幕上,为用户提供一些信息或通知。它通知用户一些特定信息或错误,请求执行某些任务的权限,还提供警告消息。

Alert 告警窗口的类型

1) 简单告警窗
在这里插入图片描述
主要用于显示一些信息

2)输入型提示窗
此类告警空会询问用户的一些输入,Selenium 网络驱动程序可以使用 sendkeys(“ input…").
在这里插入图片描述
3) 确认窗口
提供几个操作选项,供用户选择
在这里插入图片描述

编程步骤
1)每当触发警报时,网页上都会出现一个弹出窗口。控件仅保留在父网页中。因此,Selenium Webdriver 的第一个任务是将焦点从父页面切换到警报弹出窗口。可以使用以下代码片段完成此操作。

alert_obj = driver.switch_to.alert

2 ) 控件移动到弹出窗口后,我们可以使用推荐的方法对其执行不同的操作。
alert_obj.accept() – 用于接受提示窗口
alert_obj.dismiss() – 用于取消提示窗口
alert.send_keys() – 向提示窗口文本输入框输入内容
alert.text() – 获取提示信息

处理简单告警窗口

简单告警窗上有一条消息和一个“确定”按钮。当它弹出时,用户单击“确定”按钮接受它。

这是HTML代码,它将在单击主页上的“创建告警”按钮时生成简单告警
Simple_Alert.html

<!DOCTYPEhtml><html><bodybgcolor="#C0C0C0"><h1>
Simple Alert Demonstration</h1><p>
click the Below Button to create an Alert</p><buttononclick="alertFunction()"name="alert"> Create Alert</button><script>functionalertFunction(){alert("Hi!, I am a Simple Alert. Please Click on the 'OK' Button.");}</script></body></html>

下面是selenium处理代码

from selenium import webdriver
import time

driver = webdriver.Firefox()
driver.maximize_window()
location ="file://<Specify Path to Simple_Alert.HTML>"
driver.get(location)#Click on the "Alert" button to generate the Simple ert
button = driver.find_element_by_name('alert')
button.click()#Switch the control to the Alert window
obj = driver.switch_to.alert

#Retrieve the message on the Alert window
msg=obj.text
print("Alert shows following message: "+ msg )

time.sleep(2)#use the accept() method to accept the alert
obj.accept()print(" Clicked on the OK Button in the Alert Window")

driver.close

处理输入提示框

如下提示框:
在这里插入图片描述
selenium代码如下:

from selenium import webdriver
import time

driver = webdriver.Firefox()
driver.maximize_window()
location ="file://<Specify Path to Prompt_Alert.HTML>"
driver.get(location)#Click on the "employeeLogin" button to generate the Prompt Alert
button = driver.find_element_by_name('continue')
button.click()#Switch the control to the Alert window
obj = driver.switch_to.alert

time.sleep(2)#Enter text into the Alert using send_keys()
obj.send_keys('Meenakshi')

time.sleep(2)#use the accept() method to accept the alert
obj.accept()#Retrieve the message on the Alert window
message=obj.text
print("Alert shows following message: "+ message )

time.sleep(2)

obj.accept()#get the text returned when OK Button is clicked.
txt = driver.find_element_by_id('msg')print(txt.text)

driver.close

本文转载自: https://blog.csdn.net/captain5339/article/details/131199723
版权归原作者 __弯弓__ 所有, 如有侵权,请联系我们删除。

“Selenium Python教程第7章:Selenium编程其它功能”的评论:

还没有评论