2017-10-26 6 views
-1

두 개의 입력란 인 username과 password가 있습니다. 셀렌을 사용하여 입력을 찾아 입력 할 수 없습니다. 로그인 버튼 클릭 또한 실패합니다.Selenium. 웹 사이트의 사용자 이름과 암호를 입력 할 수 없습니다.

찾아주세요 내가 코드 라인 아래로 사용한

<div id="loginTable"> 
<form accept-charset="UTF-8" name="loginForm" method="POST" action="/cgi-bin/login"> 
<table> 
<tbody> 
<tr> 
    <td>User name:</td><td colspan="2"><input name="LOGIN"></td></tr><tr> 
    <td>Password:</td><td colspan="2"><input name="PWD" type="password"></td></tr><tr> 
<td colspan="2"><button type="submit">Login</button></td></tr></tbody></table></form></div> 

되는 HTML,

driver.findElement (By.xpath ("// [ID @ = \"loginTable \ "]/양식/table/tr [1]/td [2]/input ")). sendKeys ("test "); driver.findElement (By.name ("LOGIN")). sendKeys ("test");

WebElement userEntry = wait.until (ExpectedConditions.visibilityOfElementLocated (By.name ("LOGIN")))); userEntry.sendKeys ("Test");

아무도 작동하지 않습니다.

로그인 버튼도 작동하지 않습니다. 도와주세요.

+0

붙여 넣은 HTML 코드에는 입력 태그가 없습니다. 그것이 올바른 코드입니까? –

답변

0

문제는 로케이터입니다. 시작 부분에서 찾고자하는 요소의 유형을 식별 할 수있는 것이 필요합니다 (예 : "// div [@id ...."또는 "// * [@ id ....]"). 당신이 잠재적으로 변경할 수있는 코드에서 더 많은 요소가 있기 때문에, 매우 취성이 될 수 사용하려고 한 것과 같은

//input[@name='LOGIN'] 

복합 로케이터 : 당신이 당신의 로케이터를 단순화 할 수 있습니다 그러나 와일드 카드).

+0

고마워요 스미스. 전체 명령을 공유 할 수 있습니까? 나는 // input [@ name = 'LOGIN']을 시도했다. 하지만 작동하지 않습니다. 저는 Selinium 초심자입니다. 제게 모든 명령을 전하십시오. 고마워요. – Naveen

관련 문제