셀렌 2.0을 사용하여 코드를 자동화하고 있습니다. 목록에서 한 명 (또는 여러 명)의 사용자를 선택합니다. 그런 다음 그리드에서 사용자 이름을 볼 수있게하는 추가 버튼을 클릭합니다. 각 사용자는 그리드에 표시 될 때 유효한 Xpath를 갖습니다. 그러나 사용자 이름이 표시되지 않으면 실제로 사라지는 모눈에서 모든 사용자 이름을 지운 후에도 Xpath는 여전히 null을 반환하지 않습니다. 객체 (사용자 이름)가 표시되지 않을 때 null을 반환하는지 확인하기 위해 Xpath를 사용하지만 예상대로 작동하지 않습니다. 내 문제를 해결할 다른 방법이 있습니까? 나는 셀레늄으로 꽤 새로운 사람이다. 나는 셀레늄 2.0을 사용하고있다. Bellow는 제 코드의 일부입니다. 귀하의 도움은 매우 감사하겠습니다.웹 객체가 보이지 않아도 Xpath가 발견되었습니다.
먼저 당신의 XPath는 그것이 사용자가 아닌 다른 요소를 선택하는 것입니다 충분히 일반적이기 때문이다 :
//Check if user is present on the grid
By checkuser = By.xpath(".//*[@id='sharing_list']/tbody/tr/td[1]/span");
//if the grid is not empty, which means the grid is visible...
if(null!=checkuser) //where the problem is!!
{
//Click the button to erase the names in the grid, then the grid desapears
webDriver.findElement(By.xpath("//*[@id='sharing_list']/tbody/tr/td[4]/span")).click();
Thread.sleep(2000);
//more code
//............
}
요소가 있습니다! = 표시됩니다. 너는 무엇을 기대 하느냐? 알기가 어렵습니다. 가능한 경우 HTML 또는 UI 스크린 샷을 표시하십시오. \ –
html을 게시하십시오. null! = checkuser 코드는별로 의미가 없습니다. 하지만 실제로 요소가 있는지 알아 보려면 element.isDisplayed()를 사용할 수 있습니다. – Vinay
if 논리는 논리적으로 올바르지 않습니다. 당신은 "null이 checkuser의 값과 같지 않다"라고 말하고 있습니다 ... "checkuser의 값이 null이 아닌 경우"... 그러면 어쨌든 왜'checkuser' 값이 null이 될까요? 무의미한 excerise 보인다. – Arran