【问题标题】:Webdriver not able to click on a particular link on ChromeWebdriver 无法点击 Chrome 上的特定链接
【发布时间】:2015-04-02 00:03:55
【问题描述】:

一段时间以来,我一直在尝试使用 webdriver 在 Chrome 上单击特定元素。奇怪的是 webdriver 能够识别该特定元素的所有属性。但是当我说Element.Click(); 时,它只是跳过而不点击那个链接。

我确实使用了 Webdriver 提供的一切,按 ID、按类、按 CSS、按 XPath。还是什么都没有

如果有人能帮我解决这个问题,我将不胜感激。

@Prashant - 抱歉。这个网络应用程序正在开发中,我认为我还不能与您分享链接。

@Dominik - 这就是我定义 Element 变量的方式

var element = driver.FindElement(By.Id("h4GetStarted"));   
if(element.Contains("let's start")   
    element.click();

下面是相同的HTML代码:

<div style="margin: 44px 0px 8px 4px; cursor: pointer;" class="divRow" id="h4GetStarted">  
    <h4>let's start</h4>  
    <div class="sprite-arrow-right"></div>  
</div>

我正在尝试点击上面写着let's start 的文字。

【问题讨论】:

  • 你能分享那个链接的html吗?
  • Element 是如何定义的,您的网页的 HTML 代码是什么?

标签: c# selenium hyperlink click webdriver


【解决方案1】:

您能否确认它在您驱动浏览器(不是 WebDriver)时按预期工作?

这可能对您的情况没有帮助(它可能会帮助其他人出于同样的原因提出这个问题!),但我遇到了一个与不可点击复选框类似的问题 - 它适用于 FirefoxDriver 但不适用于 ChromeDriver(顺便说一句,我正在使用Java)。事实证明,ChromeDriver 点击了元素的中间,而我的复选框在那里无法点击。

ChromeDriver troubleshooting page 提供了一些关于解决描述此行为的 Element is not clickable 错误的有用信息。

我最终通过使用Advanced user interactions API 解决了这个问题,它提供了将鼠标移动到具有偏移量的元素的能力。有趣的是,我实际上不必指定偏移量,因为moveToElement() 方法必须选择元素的左上角(我还没有确认)。

所以不是

termsCheckbox.click();

我用过

new Actions(driver).moveToElement(termsCheckbox).click().perform();

【讨论】:

    【解决方案2】:

    将此添加到您的驱动程序

    driver.manage().window().maximize();

    我刚刚遇到了一个问题,由于浏览器不是全尺寸,chrome 没有找到元素并单击,并丢弃了元素。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-19
      • 2012-08-15
      • 2017-04-17
      • 1970-01-01
      • 2013-02-06
      相关资源
      最近更新 更多