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

发表于:2016-3-31 10:19

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:天外归云    来源:51Testing软件测试网采编

  刚才在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);
}
}
}
}
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号