Selenium2(WebDriver)_WebElement 요소 객체의 존재 여부를 판단하는 방법
7076 단어 webdriver
1 public boolean doesWebElementExist(WebDriver driver, By selector)
2 {
3
4 try
5 {
6 driver.findElement(selector);
7 return true;
8 }
9 catch (NoSuchElementException e)
10 {
11 return false;
12 }
13 }
2. 일반적으로 이런 응용 장소가 있다. 예를 들어 우리가 한 사이트에서 로그인에 성공했는지 확인하려면 로그인한 후에 해당하는 요소를 표시했는지 판단할 수 있다.
WebElement linkUsername = driver.findElement(By.xpath("//a[contains(text(),"+username+")]"));
return linkUsername.isDisplayed();
이 방법의 전제는 이 원소가 이전에 이미 존재했기 때문에 표시되는지 아닌지만 판단해야 한다는 것이다.
현재 페이지 요소가 존재하지 않습니다. 즉driver를 통해서입니다.findElement은 시간 초과 후에만 NoSuchElementException의 이상을 받을 수 있습니다.
따라서 다음과 같은 방법으로 해결할 수밖에 없다.
1 boolean ElementExist (By Locator )
2 {
3 try
4 {
5 driver.findElement( Locator );
6 return true;
7 }
8 catch(org.openqa.selenium.NoSuchElementException ex)
9 {
10 return false;
11 }
12 }
그러나 이 방법은 여전히 이상적이지 않다. 이런 두 가지 문제가 있다.
1. 이 방법은 어느 페이지 페이지에도 속하지 않기 때문에 이 기능 함수를 지원하기 위해 프레임워크의 변경을 추가로 해야 한다. 그렇지 않으면 이 함수를 사용하는 페이지 클래스마다 한 번씩 써야 한다.
2. 시간 초과를 기다려야 결과를 알 수 있고 이 함수를 자주 사용해야 할 때 상당한 시간 낭비를 초래할 수 있다.
3.
seleniumRC의 isTextPresent 방법과 유사
xpath로 모든 원소(//*[contains(.,'keyword')])와 일치하여 원하는 키워드를 포함하는 원소가 존재하는지 판단합니다.
사용 시 필요에 따라 매개 변수와 반환 값을 조정할 수 있다.
1 public boolean isContentAppeared(WebDriver driver,String content) {
2 boolean status = false;
3 try {
4 driver.findElement(By.xpath("//*[contains(.,'" + content + "')]"));
5 System.out.println(content + " is appeard!");
6 status = true;
7 } catch (NoSuchElementException e) {
8 status = false;
9 System.out.println("'" + content + "' doesn't exist!"));
10 }
11 return status;
12 }
상세한 xpath 소개: http://www.w3school.com.cn/xpath/
4. Xpath 다중 판단
1 while(currentPageLinkNumber<MaxPage)
2 {
3 WebElement PageLink;
4 PageLink = driver.findElement(By.xpath("//a[@class = 'PageLink' and @title ='"+Integer.toString(currentPageLinkNumber+1)+"']"));
5 PageLink.click();
6 currentPageLinkNumber++;
7 //OtherOperation();
8 }
다음으로 이동:http://blog.csdn.net/aerchi/article/details/8057544
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
python-webdriver로 자동으로 표를 작성하는 예시 코드만약 우리가 웹 폼의 어느 위치에 어떤 값을 기입하거나 단추를 누르려면, 우리는 먼저 개발자 도구로 이 요소의 원본 코드를 확인한 다음에 먼저 id가 있는지 관찰하고, 만약 id가 있다면, 직접 id로 이 요소를 포...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.