找不到硒元素id

时间:2016-07-10 21:08:30

标签: java google-chrome selenium selenium-webdriver

我正在尝试为我的工作编写一个Java程序,该程序登录到Paychex(通过Chrome)并为我下载报告。我的代码导航到网站,但我仍然坚持到那一点。我正在使用Selenium Chrome网络驱动程序,我无法找到登录字段的元素ID,尽管我输入了正确的名称。我花了好几个小时试图弄明白这一点无济于事。我试过通过id,name,css和xpath找到元素。什么都没有奏效!以下是网站网址和我的代码。访问此元素的任何帮助都将无法理解。 谢谢!

parameter

HTML:

WebDriver driver = new ChromeDriver();
driver.get("https://myapps.paychex.com/landing_remote/login.do?TYPE=33554433"
        + "&REALMOID=06-fd3ba6b8-7a2f-1013-ba03-83af2ce30cb3&GUID=&SMAUTHREA"
        + "SON=0&METHOD=GET&SMAGENTNAME=09PZJoiHr8jiAF1z4DL6SopY5OyRzoKSeZ4y"
        + "IhpJe7nkRdeIwtlMrg0rd7X3FRDM&TARGET=-SM-https%3a%2f%2fmyapps%2epa"
        + "ychex%2ecom%2f");    
driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS)
WebElement id = driver.findElement(By.id("USER"));

1 个答案:

答案 0 :(得分:2)

您拥有正确的ID,但您所需的元素位于IFRAME。首先切换到IFRAME然后您应该能够访问您的元素。

driver.get("https://myapps.paychex.com/");
driver.switchTo().frame("login");
WebDriverWait wait = new WebDriverWait(driver, 10);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("USER"))).sendKeys("MyUsername");
// do stuff but be sure to switch back to default content if you need to access elements outside the IFRAME
driver.switchTo().defaultContent();