【问题标题】:Selenium is not getting elements硒没有得到元素
【发布时间】:2015-11-13 14:01:39
【问题描述】:

我想获取一些元素,但它抛出错误“”。我的 java 代码是 -

driver = new InternetExplorerDriver();
WebDriverWait wait = new WebDriverWait(driver, 60);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.name("New User")));
driver.findElement(By.name("New User")).click();

HTML 代码就像下面的层次结构。

/html/frameset/frame/html/body/table/tr/td/New User

我使用的是 internet explorer 8,所以无法找到 xpath,因为我没有通过 xpath 方法绑定。

【问题讨论】:

  • but it is throwing error ..什么错误?
  • 请添加更多信息...例如相关的 HTML、您尝试过的更多内容等。

标签: java html selenium xpath


【解决方案1】:

您必须切换到iframe

driver.switchTo().frame(0);  // 0 - means, switch to the first frame

WebDriverWait wait = new WebDriverWait(driver, 60);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.name("New User"))).click();

【讨论】:

  • 只是一种改进。 visibilityOfElementLocated 返回它正在等待的 WebElement,因此显式 findElement 是多余的:WebElement newUserLink = wait.until(ExpectedConditions.visibilityOfElementLocated(By.name("New User"))); newUserLink.click()
  • @alb-i986 是的,当然,虽然这不是答案的重点:) 谢谢。
  • 谢谢它的工作,但我怎么知道框架(0)或框架(1)。这些0和1是什么
  • @Shik 0 - 是第一个,1 是第二个。您还可以使用名称或 id,或 WebElement 代替索引。
  • 现在我正在搜索另一个框架,但它给出错误“无法找到名称 == DetailFrame 的元素”我的代码是 driver.switchTo().defaultContent(); driver.switchTo().frame(driver.findElement(By.name("DetailFrame")));
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多