0

一段时间以来,我一直在尝试使用 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

4

2 回答 2

0

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

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

ChromeDriver故障排除页面Element is not clickable有一些关于解决描述此行为的错误的有用信息。

我最终通过使用高级用户交互 API解决了这个问题,该 API提供了将鼠标移动到具有偏移量的元素的能力。有趣的是,我实际上不必指定偏移量,因为该moveToElement()方法必须选择元素的左上角(我尚未确认这一点)。

所以而不是

termsCheckbox.click();

我用了

new Actions(driver).moveToElement(termsCheckbox).click().perform();
于 2012-11-20T01:23:20.333 回答
0

将此添加到您的驱动程序

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

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

于 2015-04-01T16:03:55.353 回答