这是我的Html代码:
<a id="expTo" class="formblue_link padRight10 exportLinkActive"
href="javascript:;" style="display: block; margin-left: -50px; margin- bottom: -20px;"> Export To </a>
我尝试了以下代码:
new WebDriverWait(driver, 50).until(ExpectedConditions.elementToBeClickable(By.linkText("expTo"))).click();
但我无法点击该链接。
答案 0 :(得分:2)
如果您使用链接元素的id
属性值定位元素,则应该By.id()
而不是: -
new WebDriverWait(driver, 50).until(ExpectedConditions.elementToBeClickable(By.id("expTo"))).click();
或者,如果您想使用By.linkText()
找到元素,则应尝试将链接元素的精确innerText
传递为: -
new WebDriverWait(driver, 50).until(ExpectedConditions.elementToBeClickable(By.linkText(" Export To "))).click();
注意: - 正如我在您提供的HTML
中看到的链接元素innerText
有额外的空格,在这种情况下,如果您使用的是By.linkText()
,你必须传递带有额外空格的元素innerText
。如果存在额外的空格,您还可以尝试使用By.partialLinkText()
仅传递可见文本而不使用空格: -
new WebDriverWait(driver, 50).until(ExpectedConditions.elementToBeClickable(By.partialLinkText("Export To"))).click();
已修改
在IFrame Saurabh里面。我该如何点击?
如果此元素位于iframe
内,则需要在找到元素之前切换iframe
,如下所示: -
WebDriverWait wait = new WebDriverWait(driver, 50);
//Now switch to iframe
wait.until(ExpectedConditions.frameToBeAvailableAndSwitchToIt("iframe id or name"));
//Now find desire element click
wait.until(ExpectedConditions.elementToBeClickable(By.id("expTo"))).click();
//After doing all stuff inside iframe switch back to default content for further steps
driver.switchTo().defaultContent();