C# Selenium学习(三)-获取网页属性
来源:互联网 发布:车牌位置标识数据集 编辑:程序博客网 时间:2024/06/08 11:41
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属性是用来获取单选或复选的勾选情况的。选中就是true2.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属性是获取里面的文本信息,不是标题信息。 下一节再纪录怎么处理多窗口
0 0
- C# Selenium学习(三)-获取网页属性
- Selenium学习---(三)
- selenium 获取网页源码
- selenium学习笔记(三)
- selenium 获取属性
- 三种方法:C#获取网页内容
- selenium 获取网页所有链接
- selenium+python:脚本学习笔记(三)
- C# Selenium学习(一)-准备工作
- 三、C#学习基础篇---属性
- C#获取网页内容的三种方式
- c#获取网页内容的三种方式
- C#获取网页内容的三种方式(转)
- C#获取网页内容的三种方式
- C#获取网页内容的三种方式
- C#获取网页内容的三种方式
- C#获取网页内容的三种方式
- C#获取网页内容的三种方式
- Redis配置文件详解
- JVM系列二:GC策略&内存申请、对象衰老
- Codeforces 757 C Felicity is Coming! 思维+STL
- 求职中的感想
- C/C++中字符串长度strlen()/sizeof()区别
- C# Selenium学习(三)-获取网页属性
- JavaWeb总结二十四、jsp传统标签开发
- elasticsearch-设置索引
- Android简单介绍
- 《数学之美》读书笔记(1)
- redis3集群部署
- javascript实现代码高亮原理
- 揭开Socket编程的面纱
- 小女子