Java 如何使用PhantomJS查找框架元素?

Java 如何使用PhantomJS查找框架元素?,java,iframe,selenium-webdriver,phantomjs,Java,Iframe,Selenium Webdriver,Phantomjs,我在基于框架的网站上工作。我正在使用selenium 2.47.1和PhantomJS 1.9.2。我已经编写了自动化脚本并使用firefox驱动程序运行它,它工作得非常好。我试图在JS驱动程序的帮助下执行代码。但每当我尝试执行时,它都不会给出任何异常。我的剧本如下 public class iFrame { public String baseUrl = "https://test5.icoreemr.com/interface/login/login.php"; public WebDriv

我在基于框架的网站上工作。我正在使用selenium 2.47.1和PhantomJS 1.9.2。我已经编写了自动化脚本并使用firefox驱动程序运行它,它工作得非常好。我试图在JS驱动程序的帮助下执行代码。但每当我尝试执行时,它都不会给出任何异常。我的剧本如下

public class iFrame {
public String baseUrl = "https://test5.icoreemr.com/interface/login/login.php";
public WebDriver cd;
String scenarioName = "Sheet1";
ExcelLibrary ex = new ExcelLibrary();

@BeforeTest
public void SetBaseUrl() {
    Capabilities caps = new DesiredCapabilities();
    ((DesiredCapabilities) caps).setJavascriptEnabled(true);                
    ((DesiredCapabilities) caps).setCapability(
            PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY,
            "C:\\Users\\Probe7\\Downloads\\phantomjs-1.9.2-windows\\phantomjs.exe"
        );
    this.cd = new PhantomJSDriver(caps);
    cd.get(baseUrl);
    cd.manage().window().maximize();
}

 @Test(priority = 0)
/* Login into the Application */
public void Login()  {
     cd.manage().timeouts().implicitlyWait(25, TimeUnit.SECONDS);
     cd.switchTo().frame("Login");
     System.out.println("Control Moved to Login Frame");
     String UserName = ex.getExcelValue(scenarioName, 2, 4);
     cd.findElement(By.xpath("//body/center/form/table/tbody/tr/td/div/div[2]/table/tbody/tr[1]/td[2]/input")).sendKeys(UserName); 
} 
上述代码给出了以下异常

org.openqa.selenium.NoSuchFrameException: No frame element found by name or id Login
尽管相同的脚本在firefox驱动程序中工作得很好,但在PhantomJS中却不行。 请告诉我哪里出了问题??我调查了将近一天,但没有找到任何解决办法。。请帮我做这个?
提前感谢…

您确定您的页面正确吗?您是否拍摄了屏幕截图或打印了页面源以查看登录框是否存在?另外,您可能希望更新到PhantomJS 1.9.8或2.0.0。我也尝试过PhantomJS 2.0.0,但它给出了相同的异常。我确信在上面代码中给出的baseUrl中可以使用登录框架。请尝试在切换到iframe之前拍摄网页的屏幕截图,看看是否所有内容都已正确加载。这应该对你有所帮助。我用下面的代码截图。但是它不起作用。。文件src=TakesScreenshot cd.getScreenshotAsOutputType.File;System.out.printlnFile:+src;FileUtils.copyFilesrc,新文件:\\temp\\screenshot\uuu+count++.png;这是否正确?我将baseUrl更改为。我被直接称为login frame,在LocalHost中它工作得很好&login通过了。但在该URL的服务器中,不会出现任何异常