C#中通过Selenium定位<a>标签的问题

简介: 刚才在QQ群里看到有人提问,如何实现退出百度登录问题。那么之所以会有这个问题,主要是因为这个元素,如下图所示,是无法直接定位到的: 经过研究发现,要想定位到这种元素,拢共分两步: 第一步,把鼠标移到能使目标元素显示在页面上的前置元素上; 第二步,通过xpath对目标标签元素进行定位。

刚才在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);
            }
        }
    }
}

 

相关文章
|
2月前
|
SQL C# 数据库
C# 读取多条数据记录导出到 Word 标签模板
C# 读取多条数据记录导出到 Word 标签模板
|
4月前
|
前端开发
selenium 解决 id定位、class定位中,属性值带空格的解决办法
selenium 解决 id定位、class定位中,属性值带空格的解决办法
71 1
|
9月前
|
XML 前端开发 数据格式
selenium--Xpath定位
selenium--Xpath定位
|
5月前
|
前端开发 测试技术 Python
软件测试/测试开发|Python selenium CSS定位方法详解
软件测试/测试开发|Python selenium CSS定位方法详解
30 0
|
5月前
|
XML 人工智能 测试技术
软件测试/人工智能|详解selenium xpath定位
软件测试/人工智能|详解selenium xpath定位
53 2
|
6月前
|
JavaScript 数据安全/隐私保护
Selenium+JQuery定位方法及应用
Selenium+JQuery定位方法及应用
46 0
|
7月前
|
JavaScript 前端开发 测试技术
吐槽selenium的定位
吐槽selenium的定位
24 0
|
Web App开发 前端开发 JavaScript
Selenium 如何定位 JavaScript 动态生成的页面元素
Selenium 是一个自动化测试工具,可以用来模拟浏览器的操作,如点击、输入、滚动等。但是有时候,我们需要定位的页面元素并不是一开始就存在的,而是由 JavaScript 动态生成的。这时候,如果我们直接用 Selenium 的 find_element 方法去定位元素,可能会出现找不到元素的错误,因为页面还没有加载完成。为了解决这个问题,我们需要使用一些特定的定位技巧,让 Selenium 等待元素出现后再进行操作。
374 0
|
9月前
|
JavaScript
selenium--更改标签的属性值
selenium--更改标签的属性值
|
9月前
|
前端开发 Python
selenium--表格和复选框的定位
selenium--表格和复选框的定位
selenium--表格和复选框的定位