首页 > 其他分享 >自动化测试工具Ranorex Studio(八十二)-WEB测试

自动化测试工具Ranorex Studio(八十二)-WEB测试

时间:2025-01-10 18:02:08浏览次数:3  
标签:WEB form Dim WebPage 八十二 repo webDocument 测试工具 Click

测试移动网站
如果你想要在你的iOS设备或者simulator上自动化web测试,你可以使用已经调制过的RXBrowser app。按照下面描述的步骤即可:
下载并且解压RXBrowser XCode项目(RXBRowser_401.zip)到你的Mac
使用XCode打开该项目
clean然后build项目,并且将其部署到你的iOS设备或者simulator上
 
图:clean然后build项目,并且将其部署到你的iOS设备或者simulator上
在执行了上述步骤之后,你就可以像使用其他调制过的app那样使用RXBrowser app. 跳转到前面的’Add your iOS device’章节来操作RXBrowser应用吧。
注意:要录制和回放你的测试,你需要保证你的RXBrowser app已经在你的iOS设备或者simulator上启动了。


WEB测试
Ranorex网页插件(适用Microsoft Internet Explorer, Mozilla Firefox, Google Chrome 和 Apple Safari)可以让你,像测试桌面程序一样,自动化测试网页程序界面。
Ranorex框架中的网页结构
AJAX处理
搜索或过滤页面元素
表元素及其CSS样式设置
跨浏览器测试
设置输入,tag属性以及在不用鼠标的情况下进行点击
录制和对象库
执行javascript代码
层级菜单处理
Ranorex框架中的网页结构
Ranorex能够获取web文档的全部HTML结构。Ranorex在自动化测试过程中,使用Ranorex Spy分析网页程序的结构和内容,识别出可访问的信息。
每个打开的网页都表现为spy tree中的一个DOM节点。除了标准的浏览器程序,Ranorex还可以识别内嵌的浏览器对象(比如:已编译的帮助文件)。另外,浏览器窗口中的每个tab项在spy tree中也是一个为单独的DOM节点。
  


Web文档及其HTML结构是通过RanoreXPatch识别的。与HTML中的XPath类似,RanoreXPath为搜寻web页面中一个或多个web元素提供了一种简单的搜索机制。
WebDocument适配器
WebDocument适配器代表一个包含所有tag的完整的网页,(比如:header,body等tag)。此外,它提供了一些实用的方法,让测试脚本更加有效。
下面的示例说明了这些特性的使用方法:
C#
// Identify a web document by its title
WebDocument webDocument = “/dom[@caption=’Ranorex Test Page’]”;
// Open a website
webDocument.Navigate(“http://www.ranorex.com”);
// Wait until the document is loaded
webDocument.WaitForDocumentLoaded();
// Execute a javascript code
webDocument.ExecuteScript(“history.back();”);
 
VB.NET
‘ Identify a web document by its title
Dim webDocument As WebDocument = “/dom[@caption=’Ranorex Test Page’]”
‘ Open a website
webDocument.Navigate(“http://www.ranorex.com”)
‘ Wait until the document is loaded
webDocument.WaitForDocumentLoaded()
‘ Execute a javascript code
webDocument.ExecuteScript(“history.back();”)
搜索或过滤页面元素
针对每个HTML标记元素,Ranorex框架提供了大范围的适配器(比如:ATag适配 <a> tags)。每个适配器都有特定的方法和属性;比如,链接标签(<a>)有特定属性HREF,TARGET和REL。
C#
// Start IE with a specific website
System.Diagnostics.Process.Start(“iexplore.exe”, “www.ranorex.com/web-testing-examples”);
// Identify the webdocument by its title
WebDocument webDocument = “/dom[@caption=’Ranorex Test Page’]”;
// Find a link by its link text (innertext)
ATag link = webDocument.FindSingle(“.//a[@innertext=’simple link’]”);
link.Click();
VB.NET
‘ Start IE with a specific website
System.Diagnostics.Process.Start(“iexplore.exe”, “www.ranorex.com/web-testing-examples”)
‘ Identify the webdocument by its title
Dim webDocument As WebDocument = “/dom[@caption=’Ranorex Test Page’]”
‘ Find a link by its link text (innertext)
Dim link As ATag = webDocument.FindSingle(“.//a[@innertext=’simple link’]”)
link.Click()
 
跨浏览器测试
在Ranorex安装过程中,安装包会自动为所有支持的浏览器安装插件,以实现Ranorex浏览器插件和特定浏览器的通信。如果你调制特定的浏览器有问题,请参考Ranorex调制向导。
创建用于Firefox的测试和创建用于Internet Explorer或者其他支持的浏览器的测试没有区别。所有的web UI元素,都是RanoreXPath使用HTML属性和值来识别。因此,一个web对象库可用于测试所有支持的网页浏览器。了解更多有关如何使用基于一个对象库的测试用例来测试多个浏览器,可以参考我们的web测试示例项目,该项目程序是Ranorex安装程序包的一部分。
浏览器特定元素的自动化(比如:弹出窗口)
处理浏览器特定的UI控件,需要有一个针对每种浏览器特定元素的单独的RanoreXPath。这就意味着,如果想点击不同浏览器弹出的对话框,你必须为每一个对话框添加一个单独的对象库对象。
Ranerex自动化测试库提供的”BrowserName”属性,会告诉你测试网站时使用的是什么浏览器。
C#
// Click the OK button in popping up dialog of one of the supported browser
// If the current browser is Internet Explorer
if(webDocument.BrowserName == “IE”)
{
Button okIE = “/form[@processname~'(iexplore|IEXPLORE)’]//button[@text=’OK’]”;
okIE.Click();
}
// If the current browser is Mozilla Firefox
else if(webDocument.BrowserName == “Mozilla”)
{
Button okFF = “/form[@processname=’firefox’]//button[@text=’OK’]”;
okFF.Click();
}
// If the current browser is Google Chrome
else if(webDocument.BrowserName == “Chrome”)
{
Button okChrome = “/form[@processname=’chrome’]//button[@text=’OK’]”;
okChrome.Click();
}
// If the current browser is Apple Safari
else if(webDocument.BrowserName == “Safari”)
{
Button okSafari = “/form[@processname=’Safari’]//button[@text=’OK’]”;
okSafari.Click();
}
VB.NET
‘ Click the OK button in popping up dialog of one of the supported browser
‘ If the current browser is Internet Explorer
If webDocument.BrowserName = “IE” Then
Dim okIE As Button = “/form[@processname~'(iexplore|IEXPLORE)’]//button[@text=’OK’]”
okIE.Click()
‘ If the current browser is Mozilla Firefox
ElseIf webDocument.BrowserName = “Mozilla” Then
Dim okFF As Button = “/form[@processname=’firefox’]//button[@text=’OK’]”
okFF.Click()
End If
‘ If the current browser is Google Chrome
ElseIf webDocument.BrowserName = “Chrome” Then
Dim okChrome As Button = “/form[@processname=’chrome’]//button[@text=’OK’]”
okChrome.Click()
End If
‘ If the current browser is Apple Safari
ElseIf webDocument.BrowserName = “Safari” Then
Dim okSafari As Button = “/form[@processname=’Safari’]//button[@text=’OK’]”
okSafari.Click()
End If
录制和对象库
Ranorex Recorder为标准桌面客户端程序和web程序提供了相同的捕获和回放功能。Recorder会自动在其动作列表中为每个录制的用户操作创建动作条目,对应的对象库也包含了动作列表中所有必需的UI网页元素的对象。
 
对象库和WebDcument
下面的例子演示了如何使用对象库访问WebDocument的方法:
C#
// Load repository
ProjectRepository repo = ProjectRepository.Instance;
// Open a website
repo.WebPage.Self.Navigate(“http://www.ranorex.com”);
// Wait until the document is loaded
repo.WebPage.Self.WaitForDocumentLoaded();
VB.NET
‘ Load repository
Dim repo As ProjectRepository = ProjectRepository.Instance
‘ Open a website
repo.WebPage.Self.Navigate(“http://www.ranorex.com”)
‘ Wait until the document is loaded
repo.WebPage.Self.WaitForDocumentLoaded()
 
处理Ajax
C#
GlobalRepository repo = GlobalRepository.Instance;
WebDocument webDocument = repo.WebPage.Self;
// Fill out the AJAX form
InputTag input1 = webDocument.FindSingle(“.//form[@id=’ajax-form’]/fieldset//input[@name=’value1′]”);
input1.EnsureVisible();
input1.Value = “Size”;
InputTag input2 = webDocument.FindSingle(“.//form[@id=’ajax-form’]/fieldset//input[@name=’value2′]”);
input2.Value = “Weight”;
InputTag checkbox = webDocument.FindSingle(“.//form[@id=’ajax-form’]/fieldset//input[@name=’checkbox2′]”);
checkbox.Checked = “true”;
SelectTag selectColor = webDocument.FindSingle(“.//form[@id=’ajax-form’]/fieldset//select[@name=’color2′]”);
selectColor.TagValue = “blue”;
// Submit data
InputTag submit = webDocument.FindSingle(“.//form[@id=’ajax-form’]//input[@id=’submit-ajax’]”);
submit.Click();
// Wait for the ajax request for max 10 seconds (10000 milliseconds)
PreTag result = webDocument.FindSingle(“.//div[@id=’ajax_response’]/div/pre”, 10000);
VB.NET
Dim repo As GlobalRepository = GlobalRepository.Instance
Dim webDocument As WebDocument = repo.WebPage.Self
‘ Fill out the AJAX form
Dim input1 As InputTag = webDocument.FindSingle(“.//form[@id=’ajax-form’]/fieldset//input[@name=’value1′]”)
input1.EnsureVisible()
input1.Value = “Size”
Dim input2 As InputTag = webDocument.FindSingle(“.//form[@id=’ajax-form’]/fieldset//input[@name=’value2′]”)
input2.Value = “Weight”
Dim checkbox As InputTag = webDocument.FindSingle(“.//form[@id=’ajax-form’]/fieldset//input[@name=’checkbox2′]”)
checkbox.Checked = “true”
Dim selectColor As SelectTag = webDocument.FindSingle(“.//form[@id=’ajax-form’]/fieldset//select[@name=’color2′]”)
selectColor.TagValue = “blue”
‘ Submit data
Dim submit As InputTag = webDocument.FindSingle(“.//form[@id=’ajax-form’]//input[@id=’submit-ajax’]”)
submit.Click()
‘ Wait for the ajax request for max 10 seconds (10000 milliseconds)
Dim result As PreTag = webDocument.FindSingle(“.//div[@id=’ajax_response’]/div/pre”, 10000)
 
表元素及其CSS样式设置
C#
GlobalRepository repo = GlobalRepository.Instance;
WebDocument webDocument = repo.WebPage.Self;
// List all elements of a table
foreach (TrTag row in repo.WebPage.DivTagContent.TableTagSimpletable.Find(“./tbody/tr”))
{
string rowInfo = “”;
TdTag rowNameCell = row.FindSingle(“./td[2]”);
rowInfo += “Row index: ” + rowNameCell.PreviousSibling.InnerText + “, “;
rowInfo += “Row name: ” + rowNameCell.InnerText + “, “;
rowInfo += “Row value: ” + rowNameCell.NextSibling.InnerText + “, “;
// Get all cells from the row
rowInfo += “All Cells: “;
foreach (TdTag cell in row.Find(“./td”))
{
rowInfo += cell.InnerText + “, “;
// Move the mouse to each cell element
cell.MoveTo();
// Set css style
cell.SetStyle(“background-color”,”#33ff00″);
}
Report.Info(rowInfo);
}
VB.NET
Dim repo As GlobalRepository = GlobalRepository.Instance
Dim webDocument As WebDocument = repo.WebPage.Self
‘ List all elements of a table
For Each row As TrTag In repo.WebPage.DivTagContent.TableTagSimpletable.Find(“./tbody/tr”)
Dim rowInfo As String = “”
Dim rowNameCell As TdTag = row.FindSingle(“./td[2]”)
rowInfo += “Row index: ” & rowNameCell.PreviousSibling.InnerText & “, ”
rowInfo += “Row name: ” & rowNameCell.InnerText & “, ”
rowInfo += “Row value: ” & rowNameCell.NextSibling.InnerText & “, ”
‘ Get all cells from the row
rowInfo += “All Cells: ”
For Each cell As TdTag In row.Find(“./td”)
rowInfo += cell.InnerText & “, ”
‘ Move the mouse to each cell element
cell.MoveTo()
‘ Set css style
cell.SetStyle(“background-color”, “#33ff00”)
Next
Report.Info(rowInfo)
Next
 
设置输入,tag属性以及在不用鼠标的情况下进行点击
C#
// Use mouse and keyboard to set Name
repo.WebPage.TestForm.InputTagTestname.Click();
Keyboard.Press(“Test Name”);
// Set email address directly via ‘Value’
repo.WebPage.TestForm.InputTagTestemail.Value = “test@ranorex.com”;
// Open calendar form
repo.WebPage.TestForm.ButtonTagCalendar.Click();
// Select the 22th of the current month
repo.WebPage.TdTag_22nd.Click();
// Select each item of list box
foreach (OptionTag option in repo.WebPage.TestForm.SelectTagTestmultiple.Find(“.//option”))
{
option[“selected”] = “selected”;
}
// Perform a click without moving the mouse to the button
repo.WebPage.TestForm.InputTagSubmit.PerformClick();
 
VB.NET
‘ Use mouse and keyboard to set Name
repo.WebPage.TestForm.InputTagTestname.Click()
Keyboard.Press(“Test Name”)
‘ Set email address directly via ‘Value’
repo.WebPage.TestForm.InputTagTestemail.Value = “test@ranorex.com”
‘ Open calendar form
repo.WebPage.TestForm.ButtonTagCalendar.Click()
‘ Select the 22th of the current month
repo.WebPage.TdTag_22nd.Click()
‘ Select each item of list box
For Each [option] As OptionTag In repo.WebPage.TestForm.SelectTagTestmultiple.Find(“.//option”)
[option](“selected”) = “selected”
Next
‘ Perform a click without moving the mouse to the button
repo.WebPage.TestForm.InputTagSubmit.PerformClick()
 
执行javascript代码
C#
webDocument.ExecuteScript(“history.back();”);
VB.NET
webDocument.ExecuteScript(“history.back();”)
 
层级菜单处理
C#
WebDocument webDocument = “/dom[@caption=’Ranorex Test Page’]”;
DivTag topMenuDiv = webDocument.FindSingle(“.//div[@id=’top-menu’]”);
// Bring the main menu to the front
topMenuDiv.EnsureVisible();
// Automating a dropdown menu
foreach (LiTag item in topMenuDiv.Find(“.//li[@visible=’true’]”))
{
Mouse.MoveTo(item);
// Move the mouse to each submenu item
foreach (LiTag subitem in item.Find(“.//li[@visible=’true’]”))
Mouse.MoveTo(subitem);
}
VB.NET
Dim webDocument As WebDocument = “/dom[@caption=’Ranorex Test Page’]”
Dim topMenuDiv As DivTag = webDocument.FindSingle(“.//div[@id=’top-menu’]”)
‘ Bring the main menu to the front
topMenuDiv.EnsureVisible()
‘ Automating a dropdown menu
For Each item As LiTag In topMenuDiv.Find(“.//li[@visible=’true’]”)
Mouse.MoveTo(item)
‘ Move the mouse to each submenu item
For Each subitem As LiTag In item.Find(“.//li[@visible=’true’]”)
Mouse.MoveTo(subitem)
Next
Next

标签:WEB,form,Dim,WebPage,八十二,repo,webDocument,测试工具,Click
From: https://blog.csdn.net/2301_77588508/article/details/144914824

相关文章

  • 安防视频监控EasyCVR视频汇聚平台如何配置webrtc播放地址?
    EasyCVR安防监控视频系统采用先进的网络传输技术,支持高清视频的接入和传输,能够满足大规模、高并发的远程监控需求。平台支持多协议接入,能将接入到视频流转码为多格式进行分发,包括RTMP、RTSP、HTTP-FLV、WebSocket-FLV、HLS、WebRTC、WS-FMP4、HTTP-FMP4等格式。今天我们来聊一聊......
  • 【Web】0基础学Web—鼠标事件、键盘事件、表单事件、元素距离、元素位置
    0基础学Web—鼠标事件、键盘事件、表单事件、元素距离、元素位置鼠标事件双击鼠标悬浮与鼠标离开鼠标按下与弹起(监听左右键和滚轮)键盘事件键盘按下键盘长按键盘弹起表单事件表单数据改变后,失去焦点时触发失去焦点触发获得焦点触发输入时触发示例表单事件示例元素距离......
  • 【Web】0基础学Web—节点操作、发表神评妙论、事件添加和移除、事件冒泡和事件捕获
    0基础学Web—节点操作、发表神评妙论、事件添加和移除、事件冒泡和事件捕获节点操作创建节点末尾追加子节点插入节点将一个节点插入到一个父元素的最前面删除节点替换节点发表神评妙论案例cssbodyjs事件添加和移除事件监听事件冒泡和捕获节点操作创建节点<script......
  • 【Web】0基础学Web—事件对象、事件委托(事件代理)——星级评论案例
    0基础学Web—事件对象、事件委托(事件代理)——星级评论案例事件对象关闭鼠标右键的点击事件关闭鼠标滚轮的事件点击的目标对象点击鼠标的左键0滚轮1右键2获得被点击的节点的名称或取相对于浏览器左上角的距离(会受页面滚动条的影响)获取相对于文档左上角的距离(不受滚动条......
  • streamlit实现聊天机器人应用,掌握使用Python构建好看web的页面
     第一个可视化的大模型应用。实现一个带有可视化界面的聊天机器人应用,可以将我们之前实现的聊天机器人转化为一个更加直观、用户友好的,我们的第一个可视化的大模型应用。通过使用Streamlit,我们借助st.columns、st.container、st.chat_input和st.chatmessage等streamlitAPl......
  • 详解SonarQube Web API的使用方法以及典型应用场景(内附python代码)
    SonarQubeWebAPISonarQube的WebAPI是一组HTTPRESTAPI,允许开发人员与SonarQube服务器进行交互。这些API涵盖了SonarQube的各个方面,包括项目管理、问题管理、质量规则和指标等。我们可以在SonarQube的帮助菜单中查看相关使用信息,如下图所示:典型应用场景SonarQubeAPI可......
  • Web安全攻防入门教程——hvv行动详解
    Web安全攻防入门教程Web安全攻防是指在Web应用程序的开发、部署和运行过程中,保护Web应用免受攻击和恶意行为的技术与策略。这个领域不仅涉及防御措施的实现,还包括通过渗透测试、漏洞挖掘和模拟攻击来识别潜在的安全问题。本教程将带......
  • Web安全攻防入门教程——hvv行动详解
    Web安全攻防入门教程Web安全攻防是指在Web应用程序的开发、部署和运行过程中,保护Web应用免受攻击和恶意行为的技术与策略。这个领域不仅涉及防御措施的实现,还包括通过渗透测试、漏洞挖掘和模拟攻击来识别潜在的安全问题。本教程将带你......
  • SD WebUI必备插件安装,菜鸟轻松成高手!
    一个刚学AI绘画的小菜鸟怎么快速成为StableDiffusionde的高手?答案就是SD插件,只要学会使用SD的各种插件,帮你写正向和负向提示词,修复人脸/身体/手指,高清放大图片,指定人物pose,图片微调等等都可以轻松搞定,善用插件是成为高手必经之路。目录1插件安装方法2基础插件介绍3......
  • 【Mac实践Docker】使用Nginx部署Web应用
    Nginx部署Web应用学习资料参考一、安装Docker下载DockerDesktop:启动Docker:验证安装:macOS命令行工具Docker命令二、使用Nginx部署Web应用拉取Nginx镜像创建挂载目录创建容器并挂载目录创建并启动容器:复制配置文件到宿主机:删除容器并重新启动:重新启动容器并挂载目录:......