数据url或链接上的selenium单击事件

本文关键字:selenium 单击 事件 url 链接 数据 | 更新日期: 2023-09-27 18:26:23

我是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.这引发了"元素不可见"的异常

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


2.在这里,我试图修复"不可见"的异常,所以现在它不会抛出错误,但也不会做任何事情:

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.这抛出了一个"无法定位元素"的表达式

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


4.或者这个,除了:"元素不可见":

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

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

谢谢!

数据url或链接上的selenium单击事件

你能试试这个吗。

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();

按键。控制将焦点转移到所需元素。我在IE驱动程序方面也遇到过类似的问题。