[Selenium With C#基础教程] Lesson-04 按钮
作者:Surpassme
来源:http://www.jianshu.com/p/83d7416c4b7d
声明:本文为原创文章,如需转载请在文章页面明显位置给出原文链接,谢谢。
Button通常有两种形式:标准按钮和提交按钮,如下图所示:
其中标准的按钮通常是由button标签创建,而提交按钮通常是由input创建,且通常在form里面。
HTML 源码如下:
<button id="button" class="nav" data-id="124" style="font-size:20px">标准按钮</button> <br />
<form name="input" action="index.html" method="post" >
用户名:<input type="text" name="username" /><br /><br />
密 码:<input type="password" name="pwd" /><br/>
<input type="submit" name="submit" value="注册-提交按钮" />
</form>
在Web页面中,有一些元素看起来非常像是按钮,但有一部分是通过CSS来实现的。
通过文本点击标准按钮
driver.FindElement(By.XPath("//button[contains(text(),'标准按钮')]")).Click();
通过文本点击提交按钮
在HTML里面提交按钮通常位于form内,按钮的名字是通过属性value来显示的。而在显示的文字中可能会包含一些额外的空格或不可见的字符。源码如下:
<input type="submit" name="submit" value="测试 按钮 " />
通过以下的脚本进行会失败,因为存在空格。报错信息如下图所示:
driver.FindElement(By.XPath("//input[@value='测试 按钮']")).Click();
这时,我们只需要修改一下脚本里面的文本值即可:
driver.FindElement(By.XPath("//input[@value='测试 按钮 ']")).Click();
提交表单
在Selenium官方文档里面,提交表单通常是由Submit方法实现,下面所示脚本是演示用户登录操作:
IWebElement username = driver.FindElement(By.Name("username"));
username.SendKeys("UserName");
IWebElement pwd = driver.FindElement(By.Name("pwd"));
pwd.SendKeys("pwd");
username.Submit();
上面是一种方法,而在实际页面中,我们都是通过点击提交按钮来进行操作的,以下是实现方法:
driver.FindElement(By.Name("username")).SendKeys("UserName");
driver.FindElement(By.Name("pwd")).SendKeys("pwd");
driver.FindElement(By.XPath("//input[@value='注册-提交按钮']")).Click();
尽管在一个form里面不太可能会存在多个提交按钮,但如果存在这种情况,使用** Submit**方法仅会点击第一个提交按钮,这样会造成混乱。
通过ID点击按钮
如果元素有ID,那么通过ID来定位元素是最好的方式。对于测试人员而言,通常会碰到元素中没有ID的情况,与其花很长时间来研究如何定位元素,还不如在这个时候多与开发沟通,增加元素的ID,这样也能减小测试的难度。
driver.FindElement(By.Id("button")).Click();
通过Name点击按钮
driver.FindElement(By.Name("submit")).Click();
通过图片点击按钮
在测试的过程中会遇到另一种类型的按钮。在一个form内,图片看起来非常像按钮,如下图所示:
<input type="image" src="images/button_login.jpg" />
driver.FindElement(By.XPath("//input[contains(@src, 'button_login.jpg')]")).Click();
通过JavsScript点击按钮
在用尽一切方法都不能点击按钮时,可以考虑用JavaScript来实现点击按钮,如下所示:
IWebElement btn = driver.FindElement(By.Name("submit"));
((IJavaScriptExecutor)driver).ExecuteScript("arguments[0].click()", btn);
[Selenium With C#基础教程] Lesson-04 按钮的更多相关文章
- [Selenium With C#基础教程] Lesson-07 复选框
作者:Surpassme 来源:http://www.jianshu.com/p/98ede43da3c3 声明:本文为原创文章,如需转载请在文章页面明显位置给出原文链接,谢谢. [作者:Surp ...
- [Selenium With C#基础教程] Lesson-01环境搭建
作者:Surpassme 来源:http://www.jianshu.com/p/33b87bc00233 声明:本文为原创文章,如需转载请在文章页面明显位置给出原文链接,谢谢. 最近开始复习Sele ...
- [Selenium With C#基础教程] Lesson-02 Web元素定位
作者:Surpassme 来源:http://www.jianshu.com/p/cfd4ed1daabd 声明:本文为原创文章,如需转载请在文章页面明显位置给出原文链接,谢谢. 使用Selenium ...
- [Selenium With C#基础教程] Lesson-05 文本框
作者:Surpassme 来源:http://www.jianshu.com/p/7dca7d0d1ea3 声明:本文为原创文章,如需转载请在文章页面明显位置给出原文链接,谢谢. 文本框在Web页面中 ...
- [Selenium With C#基础教程] Lesson-03 超级链接
作者:Surpassme 来源:http://www.jianshu.com/p/83809943e751 声明:本文为原创文章,如需转载请在文章页面明显位置给出原文链接,谢谢. 超级链接或链接是We ...
- [Selenium With C#基础教程] Lesson-06 单选按钮
作者:Surpassme 来源:http://www.jianshu.com/p/08ee1929875f 声明:本文为原创文章,如需转载请在文章页面明显位置给出原文链接,谢谢. 单选按钮通常用在需要 ...
- Selenium IDE 基础教程
Selenium IDE 基础教程 1.下载安装 a 在火狐浏览其中搜索附件组件,查找 Selenium IDE b 下载安装,然后重启firefox 2.界面讲解 在菜单- ...
- [小北De编程手记] : Lesson 04 - Selenium For C# 之 API 上
这一部分,我准备向大家介绍Selenium WebDriver的常用API,学习这部分内容需要大家最好有一些简单的HTML相关知识,本文主要涉及到以下内容: Selenium API:元素检查 Sel ...
- [分享]Ubuntu12.04安装基础教程(图文)
[分享]Ubuntu12.04安装基础教程(图文) 原文地址: http://teliute.org/linux/Ubsetup/lesson21/lesson21.html 1.进入 live cd ...
随机推荐
- iconv 解决utf-8和gb2312编码转换问题
$content = iconv("utf-8","gb2312//IGNORE",$content); //utf-8转gbk $content = icon ...
- 【翻译】用 Expression Blend 创建酷炫的 Button
原文:Creating “Cool” Buttons with Expression Blend Author: Alex 在本文中,我们将考虑在Expression Blend用几种方法来创建酷炫的 ...
- 关于SQLSERVER的全文目录跟全文索引的区别
很久没有写随笔了,本来之前想写一篇关于SQLSERVER全文索引的随笔,可惜没有时间,一直拖到现在才有时间写,不好意思让各位久等了~ 先介绍一下SQLSERVER中的存储类对象,哈哈,先介绍一下概念嘛 ...
- SharePoint 事件 2137 / 2138 :SharePoint 运行状况分析器检测到错误。驱动器的可用空间不足。
转自MSDN:http://technet.microsoft.com/zh-cn/library/ff805057.aspx 摘要:服务器场中的一个或多个服务器上的磁盘驱动器的可用空间不足. 注意: ...
- Ubuntu无法获得锁 /var/lib/dpkg/lock - open (11: 资源暂时不可用)
结果终端提示:无法获得锁 /var/lib/dpkg/lock - open (11: 资源暂时不可用) E: 无法锁定管理目录(/var/lib/dpkg/),是否有其他进程正占用它?” 解决办法如 ...
- 读《分布式一致性原理》zookeeper运维
1.配置详解 1.1基本配置 基本参数包括clientPort,dataDir和tickTime 1.2高级配置 下面我们再来看看zookeeper中一些高级配置参数的配置实用 2.四字命令 我们曾经 ...
- Splash Screen 加载窗体 [not finished]
对于windows开 发人员来说在打开VS开发工具时,总是先呈现一个SplashScreen界面,登上几秒钟后才打开VS的主界面.这样的效果一般是在主界面需要加载大量 资源,为避免主界面变成“死”界面 ...
- leetcode535
public class Codec { const string alphabet = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVW ...
- web开发-CORS支持
一.简介 Web 开发经常会遇到跨域问题,解决方案有:jsonp,iframe,CORS 等等 1.1.CORS与JSONP相比 1.JSONP只能实现GET请求,而CORS支持所有类型的HTTP请求 ...
- 跟着太白老师学python 10day 函数的动态参数 *args, **kwargs, 形参的位置顺序
1. *args 接收实参的位置参数, **kwargs接收实参的关键字参数 def func(*args, **kwargs): print(args, kwargs) func(1, 2, 3, ...