電子メール、パスワード、および署名要素をhereから選択しようとしています。Selenium Java findElement一意のIDまたはXpathにクエリが無効です
要素に固有のIDがあり、Xpathを検査してコピーできます。
私はこれらのクエリを試して、セレニウムがそれを見つけることができない理由を理解できません。
WebElement emailfield = driver.findElement(By.id("lid"))
WebElement emailfield = driver.findElement(By.xpath("//*[@id=\'lid\']"));
WebElement emailfield = driver.findElement(By.xpath("//*[@id=lid]"));
ドライブは、これを行うためにクロムを開いて起動することができます。しかし、私は幸運ではない。 これらが有効でない方法を教えてください。私が理解しているように、idは完全にユニークであるべきですが、By.idとBy.xpathのどちらのメソッドも要素を見つけられません。
ここに私のコードです。
String email = "myemail";
String password = "the_password";
WebElement emailfield = driver.findElement(By.id("lid"));
emailfield.sendKeys(email);
WebElement passwordfield = driver.findElement(By.xpath("//*[@id=pwd]"));
passwordfield.sendKeys(password);
WebElement login = driver.findElement(By.id("submit_but"));
login.click();
ここにHTMLテーブルがあります。
<table width="260" align="center" class="mob_width" cellspacing="2" cellpadding="1">
<tbody><tr>
<td colspan="2">
<h3 class="signintxt">Sign In</h3>
</td>
</tr>
<tr>
<td align="center" colspan="2"><span id="msgpanel"></span></td>
</tr>
<tr>
<td class="label">Email/Phone:</td>
<td align="left"><input name="lid" class="input usrbx" id="lid" onkeypress="clearmsg()" type="email" value=""></td>
</tr>
<tr>
<td class="label">Password:</td>
<td align="left"><input name="pwd" class="input passbx" id="pwd" onkeypress="clearmsg()" type="password"></td>
</tr>
<tr>
<td class="label"></td>
<td align="left"><div class="forgotpasslink"><span onclick="goToForgotPassword();">Forgot Password?</span></div>
</td></tr>
<tr id="hiptr" style="display: none;">
<td class="label"> </td><td align="left"> </td>
</tr>
<tr>
<td class="emptytd"></td>
<td height="30" class="mobile-height">
<div class="sectxt">
<label>
<input name="rem" id="rem" type="checkbox" value="10">
<span class="securetxt">Keep me signed in</span>
</label>
</div>
</td>
</tr>
<tr>
<td class="emptytd"></td>
<td align="left">
<button name="submit" class="submit_mobile" id="submit_but" type="submit">Sign In</button>
</td>
</tr>
</tbody></table>
コンパイルして10秒待って同じエラーが発生する明示的な待機時間を示します。
//explicit
WebDriverWait wait = new WebDriverWait(driver, 10);
WebElement aboutMe;
aboutMe= wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath(".//form[@id='login']//*[@id='lid']")));
aboutMe.click();
この要素が存在するHTMLソース部分を投稿してください。私はそれがJavaのソースコードから見つけることができない理由はありません。 –
投稿を確認し、ページにテーブルを追加しました。 –
エラーが生じますか? – Grasshopper