Java 为什么这一步不起作用?

Java 为什么这一步不起作用?,java,selenium,selenium-webdriver,Java,Selenium,Selenium Webdriver,我用SeleniumJava编写了一个测试用例来登录,然后 单击停靠菜单中的项目。 它可以登录,但不点击dock菜单项。 这是我写的代码。有人能告诉我怎么了吗 driver.get(baseUrl); driver.findElement(By.id("content")).click(); driver.findElement(By.id("sign-in")).click(); driver.findElement(By.id("_58_login")).clear(); driver.fi

我用SeleniumJava编写了一个测试用例来登录,然后 单击停靠菜单中的项目。 它可以登录,但不点击dock菜单项。 这是我写的代码。有人能告诉我怎么了吗

driver.get(baseUrl);
driver.findElement(By.id("content")).click();
driver.findElement(By.id("sign-in")).click();
driver.findElement(By.id("_58_login")).clear();
driver.findElement(By.id("_58_login")).sendKeys("basand");
driver.findElement(By.id("_58_password")).clear();
driver.findElement(By.id("_58_password")).sendKeys("pass");
driver.findElement(By.xpath("//input[@type='submit']")).click();

driver.switchTo().frame(driver.findElement(By.id("DockMenuFrame")));
driver.findElement(By.linkText("APP. POS. TM.")).click();
driver.findElement(By.xpath("//a[@id='docMenuForm:j_id46_Function_850010408']/span")).click();

问题可能出在SwitchTo().Frame()语句中。webelement重载版本似乎使用了以前找到的元素。在我的代码中,我必须使用
Driver.SwitchTo().DefaultContent()转到顶层框架,然后在尝试选择元素之前由元素继承人切换框架。

运行此代码时会出现何种错误?没有错误,只是不要单击该框架。是否可能,此框架位于需要首先选择的另一个框架下?是的,可能,请检查tabindex的值并基于tabindex for findelement构建xpath。如果元素位于iframe中,则会出现无元素异常。可能有多个输入,但它找到的第一个输入不可见或未启用。在该xpath上尝试findElements,并查看有多少结果。在实际单击该元素之前,请使用
wait.until(ExpectedConditions.ElementIsClickable(By…())
,查看该元素是否确实可单击。