![](/img/trans.png)
[英]How to click on the ahref link using selenium webdriver 2.25 - java?
[英]How to click on an image/link using Selenium WebDriver (Java)
我在此网站上,并且尝试使用selenium webDriver(在Java中)单击基于Mass_based的搜索: http ://mmcd.nmrfam.wisc.edu/
图像/按钮的HTML代码为:
<img name="navbut4" src="http://mmcd.nmrfam.wisc.edu/cq-4.gif" onmouseover="glow('navbut4', 'tool4on')" onmouseout="glow('navbut4', 'tool4off')" border="0" alt="MASS_based search" onclick="cqmass()">
我尝试的解决方案是:
driver.findElement(By.xpath("//img[@src='http://mmcd.nmrfam.wisc.edu/cq-4.gif']")).click();
但是,这似乎不起作用。 有任何想法吗?
编辑:我已经看过可能重复的问题,但该网站上没有解决方案。
看来您的元素在iframe中,所以在单击第一个之前切换到iframe
喜欢
driver.switchTo().frame(driver.findElement(By.xpath("//frame[@name='leftFrame']")));
然后执行点击
driver.findElement(By.cssSelector("td > img[name='navbut4']")).click();
而且您必须从该iframe回来进行该iframe以外的其他操作
driver.switchTo().defaultContent();
完整的代码将像
System.setProperty("webdriver.chrome.driver", "D:\\Application\\chromedriver.exe");
driver = new ChromeDriver();
driver.manage().window().maximize();
driver.get("http://mmcd.nmrfam.wisc.edu/");
driver.manage().timeouts().implicitlyWait(30,TimeUnit.SECONDS);
driver.switchTo().frame("leftFrame");
driver.findElement(By.cssSelector("td > img[name='navbut4']")).click();
这是您的问题的答案:
元素Mass_based Search
位于id
为leftFrame
的iframe
。 因此,我们必须先切换到iframe
。
driver.switchTo().frame("leftFrame");
现在,我们可以通过name
定位器识别基于MASS_based search
元素, MASS_based search
如下所示调用click()
:
driver.findElement(By.name("navbut4")).click();
完成iframe
上的作业后,您必须使用页面上的“ Top Window
”:
driver.SwitchTo().DefaultContent();
这是工作代码块:
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
public class Q45226198_frame_element
{
public static void main(String[] args)
{
System.setProperty("webdriver.gecko.driver", "C:\\Utility\\BrowserDrivers\\geckodriver.exe");
WebDriver driver = new FirefoxDriver();
driver.manage().window().maximize();
driver.get("http://mmcd.nmrfam.wisc.edu/");
driver.switchTo().frame("leftFrame");
driver.findElement(By.name("navbut4")).click();
}
}
让我知道这是否回答了您的问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.