我想在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,
请告知,
吉尔
答案 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();