首页 模式识别 知识图谱 自然语言处理 数据分析 决策支持

当前位置:首页 > 自动化 > selenium自动化测试报告

selenium自动化测试报告

发布时间:2024-07-03 09:40:59 作者:禾仲叡
本文目录一览ˇ﹏ˇ自动化测试:Selenium高级操作

本章主要内容:

切换到适当的上下文:

使用JS弹出框

切换框架

调整大小浏览器窗口

调整JS弹出框大小

JavaScript,又称JS,应用于HTML网页,通过操作网页窗口和网页来实现动态效果。 元素。

JS弹窗类型:警报框警报、确认框验证、问题框提示

如果浏览器窗口中有JavaScript弹窗,则应该存在。 通过switch_to语句执行。

相关方法:

切换到窗口

当浏览器中有多个窗口时,需要调用切换到另一个窗口操作。 切换到目标窗口:

相关方法:

例如:

Switch_frame

如果元素是HTML中,则在框架或iframe,无法直接找到该元素。 在进行放置和其他任务之前,您需要先更改框架。

相关方法:

一般我们可以使用WebElement的方法来与页面进行点击等操作。 但有时我们需要一些复杂的动作,所以我们需要使用我们的动作链。

类似鼠标操作,具有双击、右键、拖动、悬停等功能。

标准按键:

常用按键:

未命名键:a-z,0-9

修饰键:

修饰键单独使用时无意义,一般使用。 与其他键结合使用。

操作步骤:

使用示例

输入大写字母或按键上方的字母:

JS,JavaScript的缩写,应用广泛用于HTML网页中,通过控制网页的窗口和网页的元素来创建动态效果。

Web驱动无法完成的工作可以通过JS来完成。

示例:

参考JS:

获取标题:document.title

弹出提示框:alert('I'm)bombbox');

更改元素属性:q=document.getElementById('kw');q.style.display='block';

selenium-js滚动条

通过js实现拖动滚动条的效果:

将元素移动到窗口顶部:

将元素移动到窗口底部:

指定窗口移动距离:

将窗口移动到某个位置:

InputLabel:借用要应用的输入元素的发送方法

示例:-

卸载帐户---借用autoIt等其他工具:

•用于WindowsGUI自动化任务

•有了它,可以组合使用自定义击键、鼠标移动和窗口/控制器操作来实现自动化任务。

•使用类似BASIC的脚本语言。

•您可以使用转换工具将脚本转换为exe文件

出于安全原因,应用程序在登录或某些操作节点时使用验证码。

验证码是一种官方的、全自动的程序,用于识别用户是计算机还是人类。

自动化时的验证码设置方法:

Cookie操作:

Selenium截图操作

快照:

>

(`▽′)使用pycharm+selenium进行自动化测试中为什么会出现这种错误?使用Selenium时遇到的错误消息“javascripterror:a.tagName.toUpperCaseisnotafunction”是指执行JavaScript命令时出现问题。 此错误通常表明您尝试调用的JavaScript函数或属性不存在,或者上下文使用不正确。
此特定错误很可能是由于尝试调用非DOM元素的JavaScript对象上的tagName属性的toUpperCase()方法引起的。 tagName`是DOM元素的一个属性,它可以返回表示元素名称的字符串。 例如,对于
元素,tagName值为“DIV”。
此错误的可能原因:
1.元素引用不正确:您可以尝试在不是DOM元素的JavaScript对象上调用.tagName.toUpperCase()。
2.执行时间不正确:JavaScript代码可能会在DOM元素可用之前执行,这意味着未找到预期的元素。
3.脚本错误:传递给execute_script()或execute_async_script()`的JavaScript代码中有错误。
要解决这个问题,可以采取以下步骤:
-验证元素是存在:在调用.tagName.toUpperCase()之前确保该元素确实存在并且是一个DOM元素。
-检查代码:检查传递给Seleniumexecute_script()方法的JavaScript代码,以确保使用正确的元素引用。
-调试输出:在执行.tagName之前添加一些调试输出,例如console.log(a),以检查对象a是否是预期的DOM元素。
-等待元素:使用Selenium的等待条件来确保元素在执行JavaScript之前已加载并可见。

ˇ▽ˇ如何利用selenium来进行自动化页面测试这既是一个测试主题,也是一个开发主题。 如今的Web应用程序不可避免地需要自动化页面测试,因此Selenium是一个不错的选择。 Selenium是一个自动化测试框架,具有IDE和API接口,可以应用于Java、C#、Python和Ruby等语言。 使用Selenium构建自动化测试程序非常简单。 但首先,您应该熟悉Web应用程序中请求和响应的概念以及如何使用XPath。 这里我将介绍如何使用Junit和Selenium实现自动化页面测试。
1、下载需要的依赖文件selenium-server-standalone-2.25.0.jar、junit-4.7.jar,放到你项目的lib文件夹下(这里我们使用Firefox浏览器作为客户端,所以需要额外的浏览器启动器无需下载。
2.创建一个测试项目,并将以下代码添加到项目中:
importcom.thoughtworks.selenium;
importjunit.framework.TestCase;
★importorg.junit.After;
★importorg.junit.Before;
★importorg.junit.Test;
★importorg.junit.runner.RunWith;
★importorg.junit.runners.BlockJUnit4ClassRunner;
导入org.openqa.selenium.By;
导入org.openqa.selenium.WebDriver;
导入org.openqa.selenium.WebDriverBackedSelenium;
导入org.openqa.selenium.WebElement;
导入org.openqa.selenium.firefox.FirefoxDriver;
导入org.openqa.selenium.internal.WrapsDriver;
导入org.openqa.selenium.support.ui等等;
导入org.openqa.selenium.support.ui.WebDriverWait;
导入java.io.IOException;导入静态org.openqa.selenium.support.ui.ExpectedConditions.visibilityOfElementLocated;
<@RunWith(BlockJUnit4ClassRunner.class)
<@Before
​publicvoidcreateAndStartService()throwsIOException{
​selenium=newWebDriverBackedSelenium(newFirefoxDriver(),"");
​driver=((WrapsDriver)selenium).getWrappedDriver();
<@After
<@Test
publicvoidshould_open_google_page()throwsInterruptedException{
driver.get("https://www.google.com.hk");
WebElementsearchBox=driver.findElement(By.xpath("//*[@id=\"lst-ib\"]"));
SearchBox.sendKeys("selenium");
WebElementsearchButton=driver.findElement(By.xpath("//*[@id=\"tsf\"]/div[2]/div[3]/center/input[1]"));
SearchButton.click();
等待wait=newWebDriverWait(driver,30);


<3.如果运行此测试,被展示。 Firebox浏览器将自动启动,Selenum将自动输入和搜索。
这样就完成了一个简单的自动化页面测试。 有的朋友可能不明白这段代码的含义。 我简单解释一下上面代码中的红色和蓝色部分。 Selenium通过包装浏览器来处理页面,因此它首先创建一个与浏览器关联的WebDriver对象。 然后我们需要使用findeElement方法和XPath获取页面对象(代码红色部分)来查找页面元素。 因此,其中一个单击操作通常需要一些时间才能生成服务器响应。 蓝色部分的代码可以使用XPath来判断返回后加载的是哪个页面元素。 同时,等待对象也被认为超时。 防止服务器返回或引发错误。 您仍然可以结束测试。 如何更快地确定页面元素的XPath?