Java Selenium 查找元素(xpath)

标签 java selenium xpath

这是我在 StackOverFlow 上的第一篇文章,作为一个中国人,请忽略我糟糕的英语哈哈。

我正在尝试使用 selenium 执行以下操作: 1.打开url(代码中的url) 2. 点击“实时市场LBMP”菜单下的“区域”链接,该链接有唯一标签“P-24A” 3.获取“最近间隔”文件的时间并打印出来。

高亮元素是我的目标:

enter image description here

我被第二个 xpath 选择器卡住了:

    System.setProperty("webdriver.gecko.driver", "C:/Users/Haiqing/Downloads/geckodriver-v0.11.1-win64/geckodriver.exe");
    WebDriver wd = new FirefoxDriver(); 

    wd.get("http://mis.nyiso.com/public/"); 
    wd.switchTo().frame("MENU");

    WebElement zonalElement = wd.findElement(By.name("P-24Alist"));
    zonalElement.click();

    wd.switchTo().defaultContent();
    wd.switchTo().frame("BODY");
    WebElement mostRecentIntervalTime = wd.findElement(By.xpath("//a[contains(text(), 'Most recent interval')]/../following-sibling::td/span"));
    System.out.println("Most recent updated time is : " + mostRecentIntervalTime.getText()); 
    wd.quit();

HTML 如下: 最近的间隔 2016 年 12 月 4 日 06:42 美国东部时间

出现异常 enter image description here

最佳答案

该元素位于 <frame> 内,您需要先切换到它。

driver.switchTo().frame("MENU");

然后切换回来

driver.switchTo().defaultContent();

您可以查看docs更多选项switchTo()方法。

关于Java Selenium 查找元素(xpath),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40958382/

相关文章:

java - 执行线程 "one by one"

javascript - 无法读取 selenium 中未定义的 innerHTML 认为元素已定义?

python selenium 示例不起作用,说没有名为 Keys 的模块

sql-server - 在 sql server 的 xpath 中使用变量

java - XPathExpression动态返回值

java - 将拖放继承到JavaFX中的子类

java - 刷新查询按钮选择JAVA

java - Apache 配置 - 处理同名的多个 XML 条目

createStatement 的 java sql 语法错误

python - WebDriverException : Message: Service/usr/bin/google-chrome unexpectedly exited. 状态代码为:-11,使用 ChromeDriver Chrome 通过 Selenium Python