数据网址或链接上的selenium click事件

时间:2015-12-10 00:41:33

标签: c# selenium selenium-webdriver

我是Selenium的新手,我有以下情况。

我的HTML:

<div class="activeThumbnail thumbnail simple animated zoomIn" data-url="/report/sales-vs-price" style="height: 332px;">
    <div class="caption">
        <p class="thumbReportTitle">
           <a href="/report/sales-vs-price">Sales vs Price</a>
        </p>                        
    </div>
</div>

我需要模拟链接中的点击,以便打开报告页面。我根据不同的反应(尝试访问链接或文本)尝试了几种不同的选项:

1.这会引发&#34;元素不可见&#34;

的例外
driver.FindElementByCssSelector("a[href*='sales-vs-price']").Click();


在这里,我试图修复&#34;不可见&#34;异常所以现在它不会抛出错误但它也没有做任何事情:

Actions builder = new Actions(driver);
Actions click = builder.MoveToElement(driver.FindElementByCssSelector("a[href*='sales-vs-price']")).Click();
click.Build().Perform();

Actions builder = new Actions(driver);
Actions click = builder.MoveToElement(driver.FindElementByXPath("//*[contains(text(),'Sales vs Price')]")).Click();
click.Build().Perform();


3.这会引发&#34;无法找到元素&#34;

driver.FindElementByPartialLinkText("a[href='sales-vs-price']").Click();


4.或者这个例外:&#34;元素不可见&#34;:

driver.FindElementByXPath("//*[contains(text(),'Sales vs Price')]").Click();

我不确定我做错了什么...有没有人知道我是否可以访问data-url?或者有人有其他想法吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

你可以尝试一下。

driver.FindElement(By.PartialLinkText("Sales vs Price")).click();

如果使用上述命令抛出未找到元素的异常。使用隐式等待(以确保页面完全加载)。

如果对上述命令没有执行任何操作。使用

driver.FindElement(By.PartialLinkText("Sales vs Price")).sendKeys(Keys.Control);
driver.FindElement(By.PartialLinkText("Sales vs Price")).click();

Keys.Control将焦点带到所需元素。我遇到了与IE驱动程序类似的问题。