C# Selenium学习(三)-获取网页属性

C# Selenium学习(三)

上一节是操作部分,这一节主要是纪录获取信息的部分。
如果有交流或错误,请在下面评论区留言哦。

获取基本信息

基本思想是一样的。大部分都是定位后直接获取属性。只有一部分信息是要掉用方法去查找的。

1.Title标题

在创建对象、打开网页后,调用IWebDriver测试器对象的Title属性就可以获取了。如下代码:
 IWebDriver selenium = new ChromeDriver( );
 selenium.Navigate( ).GoToUrl( "http://tieba.baidu.com/f/search/adv" );
 Console.WriteLine(selenium.Title);//输出标题名

2.Url链接

用法一样的。贴代码
 IWebDriver selenium = new ChromeDriver( );
 selenium.Navigate( ).GoToUrl( "http://tieba.baidu.com/f/search/adv" );
 Console.WriteLine(selenium.Url);//输出链接

3.Text元素的文本值

用法基本一样,只是要在定位后才能获取到的属性。如下代码:
            IWebDriver selenium = new ChromeDriver( );
            selenium.Navigate( ).GoToUrl( "http://www.baidu.com" );

            IWebElement web = selenium.FindElement( By.Id( "setf" ) );
            Console.WriteLine(web.Text);//输出元素标记中夹的信息

4.Selected勾选情况、TagName标记名标、Enabled编辑状态、Displayed显示状态

    这两个都是属性,在定位后获取属性就行了。代码后上面的差不多,只是属性名不一样而已。在C#中,都是获取属性来获取我们想要的信息。具体作用如下:
1.Selected属性是用来获取单选或复选的勾选情况的。选中就是true
2.TagName属性是用来获取元素用的是那个HTML标记的。
3.Enabled属性是用来获取input等一些能编辑的元素,比如文本框这些,用来判断是不是可以背编辑。
4.Displayed属性是用来获取元素是不是存在的。有时一些元素是可以让他存在但不显示的,可以用这个属性来检查是不是存在的。

5.GetAttribute()获取标签的属性

在定位后,获取标签里属性的值。比如ID啊 value啊等各种标签属性。这里就不展示了

6.弹出对话框的处理

首先,要先了解三种对话框:Alert、Confirmation以及Prompt。

1.Alert警告对话框
只有一个确定按钮,如下图:

这里写图片描述

2.Confirmation确认对话框
需要选择。有确认和取消两个按钮。如图:

这里写图片描述

3.Prompt输入对话框。
有输入框的Confirmation。如图:

这里写图片描述

Selenium 1是JvaaScript脚本注入,对话框的测试是“预处理”的,所以在1时代,是看不到对话框的。
Selenium 2是针对各个不同的浏览器开发的,所以是能看到对话框的。下面我们来测试一波。

因为网上没有三种对话框都存在的网页,我们自己写一下:
<html>
    <head>
        <title>这是标题</title>
    </head>

    <body>
        <input type="button" onclick="alert('这是Alert');" value="Alert" /><br/>
        <input type="button" onclick="confirm('这是confirm');" value="confirm" /><br/>
        <input type="button" onclick="prompt('这是Prompt');" value="prompt" /><br/>
    </body>


</html>

这里写图片描述

下面进行测试:

            IWebDriver selenium = new FirefoxDriver( );
            selenium.Navigate( ).GoToUrl( "file:///D:/Desktop/test.html" );

            IWebElement web = selenium.FindElement( By.XPath( "//input[1]" ) );
            web.Click( );
            Console.WriteLine( selenium.SwitchTo( ).Alert( ).Text );//在接收消息前输出
            System.Threading.Thread.Sleep( 1000 );
            selenium.SwitchTo( ).Alert( ).Accept( );


            IWebElement web2 = selenium.FindElement( By.XPath( "//input[2]" ) );
            web2.Click( );
            System.Threading.Thread.Sleep( 1000 );
            Console.WriteLine( selenium.SwitchTo( ).Alert( ).Text );//在接收消息前输出
            selenium.SwitchTo( ).Alert( ).Accept( );


            IWebElement web3 = selenium.FindElement( By.XPath( @"html/body/input[3]" ) );
            web3.Click( );
            selenium.SwitchTo( ).Alert( ).SendKeys( "这是输入的内容" );
            Console.WriteLine( selenium.SwitchTo( ).Alert( ).Text );//在接收消息前输出
   程序成功调出了三个按钮。同时SendKeys()方法给第三个输入对话框里赋值了。这里有一点理解上的:给对话框输入信息是在浏览器层面操作,所以要用测试器对象来发送信息而不是元素对象。
   SwitchTo( ).Alert( )的解释是:SwitchTo( )方法是调用ITargetLocator对象,这个对象是用来发送不同的命令到不同的窗口的。然后再用Alert()方法调用IAlert对象来处理和对话框相关的内容。
所以SendKeys()方法和Text属性都在IAlert下面。
text属性是获取里面的文本信息,不是标题信息。



  下一节再纪录怎么处理多窗口
  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值