【问题标题】:selenium click event on data-url or link数据 URL 或链接上的硒单击事件
【发布时间】:2026-01-02 16:00:01
【问题描述】:

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

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

谢谢!

【问题讨论】:

标签: c# selenium selenium-webdriver


【解决方案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 驱动程序时遇到了类似的问题。

【讨论】: