剛纔在QQ羣裏看到有人提問,如何實現退出百度登陸問題。那麼之因此會有這個問題,主要是由於這個元素,以下圖所示,是沒法直接定位到的:ui
通過研究發現,要想定位到這種元素,攏共分兩步:spa
第一步,把鼠標移到能使目標元素顯示在頁面上的前置元素上;code
第二步,經過xpath對目標標籤元素進行定位。orm
代碼以下:blog
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); } } } }