在gmail中的selenium(C#)中按xpath查找元素 - 包含数据

时间:2016-03-30 19:14:47

标签: c# selenium xpath

我想在gmail收件箱中打开一个链接(消息)(点击gmail的标题 - '你的订单已发货')打开一封电子邮件(我正在使用带有C#的selenium)。

我正在使用:

driver.FindElement(By.XPath("//*[contains(.,'Your Order has Shipped')]")

我发现元素有:X=0, Y=0, width = 1366 height = 406,

因此,这两行成功通过:

var wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
wait.Until(ExpectedConditions.ElementIsVisible(
          By.XPath("//*[contains(.,'Your Order has Shipped')]")));

但单击此元素不会执行任何操作。

我找不到任何具有固定ID /类名称(gmail ....)的div / span,

请告知,

吉尔

2 个答案:

答案 0 :(得分:0)

我刚试过:

WebDriver.FindElement(By.XPath(".//div[@role='link'][contains(.,'YOURTEXTHERE')]")).Click();

点击并打开我正在寻找的电子邮件。

答案 1 :(得分:0)

您可以点击使用Javascript看不到的元素。

IJavaScriptExecutor executer = driver as IJavaScriptExecutor;
executor.ExecuteScript("arguments[0].click();", elementToClick);

否则,如果它不可见,您可以执行类似下面的操作,然后在点击之前将其显示在视图中。

elementToClick.SendKeys(Keys.Home);
Thread.Sleep(100);
elementToClick.Click();