2016-07-10 6 views
0

私はPaychexにログインして(Chrome経由で)私の仕事のためのJavaプログラムを作成しようとしています。私のコードはウェブサイトに移動しますが、私はその時点で固執しています。私はSelenium Chromeウェブドライバを使用しています。正しい名前を入力しても、ログインフィールドの要素IDを見つけることができません。私はこれを無駄にするのに何時間も費やした。 id、name、css、xpathで要素を探してみました。何も働いていない!以下は、ウェブサイトのURLと私のコードです。この要素へのアクセスの援助は感謝の余地があります。 ありがとう!セレン元素idが見つかりません

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")); 

HTML:

<input name="USER" class="form-control ng-pristine ng-invalid ng-invalid-required" id="USER" required="" type="text" maxlength="50" placeholder="Enter Username" data-ng-model="user.username" data-payx-form-value="siteminder.username" data-ng-change="clearShowError()" data-payx-focus=""> 
+1

あなたのHTMLはどこですか? –

+0

html要素のIDはUSERですか。私はクロムでF12を押します。デベロッパーツールの小さいカーソルアイコンをクリックし、フィールドの入力ボックスをクリックして、そのIDがどのように設定されているかを確認します。 – Gavin

+0

申し訳ありません - 私はこれを行いました。ここには JMarotta

答えて

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(); 
関連する問題