C#中通过Selenium定位<a>标签的问题
2023-09-27 14:26:56 时间
刚才在QQ群里看到有人提问,如何实现退出百度登录问题。那么之所以会有这个问题,主要是因为这个元素,如下图所示,是无法直接定位到的:
经过研究发现,要想定位到这种元素,拢共分两步:
第一步,把鼠标移到能使目标元素显示在页面上的前置元素上;
第二步,通过xpath对目标标签元素进行定位。
代码如下:
using System; using OpenQA.Selenium; using OpenQA.Selenium.IE; using OpenQA.Selenium.Interactions; using System.Threading; namespace BaiduAutoLoginOut { class Program { static void Main(string[] args) { IWebDriver iw = new InternetExplorerDriver(); iw.Navigate().GoToUrl("http://www.baidu.com"); IWebElement login = iw.FindElement(By.Id("s_username_top")); Actions action = new Actions(iw); action.MoveToElement(login).Build().Perform(); WaitUntilPageLoaded(iw, "//a[text()=' 退出 ']"); iw.FindElement(By.XPath("//a[text()=' 退出 ']")).Click(); } private static void WaitUntilPageLoaded(IWebDriver iw, string v) { try { iw.FindElement(By.XPath(v)); } catch (Exception ex) { Console.WriteLine(ex.ToString()); Thread.Sleep(1000); WaitUntilPageLoaded(iw, v); } } } }
相关文章
- C# Deldegate的使用
- 基于halcon实现视觉定位框架(C#做主算法,C#、MFC、Qt二次开发)【附源码】
- C# 6.0的字典(Dictionary)的语法
- C#多线程学习总结
- C#.NET中对称和非对称加密、解密方法汇总--亲测可用
- ElasticSearch入门 第四篇:使用C#添加和更新文档
- C# 封装miniblink 使用HTML/CSS/JS来构建.Net 应用程序界面和简易浏览器
- C#基础篇 - 正则表达式入门
- 【笔记】C# 泛型约束
- C# ignoring letter case for if statement(Stackoverflow)
- C#学习-英雄管理器练习
- C#实现邮件发送的功能
- c# 弹出虚拟键盘关闭虚拟键盘(适用win10、win7)学习记录(转载)
- 2018-10-19-C#-序列类为-xml-可以使用的特性大全
- 2018-9-30-C#-winforms-输入颜色转换颜色名
- 2019-9-2-C#-设计模式-责任链