zoukankan      html  css  js  c++  java
  • [Selenium With C#基础教程] Lesson-04 按钮

    作者:Surpassme

    来源:http://www.jianshu.com/p/83d7416c4b7d

    声明:本文为原创文章,如需转载请在文章页面明显位置给出原文链接,谢谢。

    Button通常有两种形式:标准按钮和提交按钮,如下图所示:

    4-1 按钮分类_c2i.jpg

    其中标准的按钮通常是由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();
    

    4-2 空格导致出错_c2i.jpg

    这时,我们只需要修改一下脚本里面的文本值即可:

    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" />
    

    4-3 图片登录按钮.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);
    
  • 相关阅读:
    安装和使用 PyInstaller 遇到的问题
    Mininet 系列实验(七)
    Mininet 系列实验(六)
    Mininet 系列实验(五)
    Mininet 系列实验(三)
    Mininet 系列实验(一)
    Linux进程间通信(消息队列/信号量+共享内存)
    bugku 输入密码查看flag
    bugku 头等舱
    bugku 你必须让他停下
  • 原文地址:https://www.cnblogs.com/surpassme/p/6507518.html
Copyright © 2011-2022 走看看