Selenium에서 id 속성의 지정되지 않은 요소를 가져옵니다.
4702 단어 셀레늄selenium-webdriver
하고 싶은 일
Selenium WebDriver를 사용하여 화면의 요소를 지정할 때 id 속성이 지정되지 않은 경우 어떻게 요소를 검색합니까? 라는 이야기입니다. Chrome에서 Yahoo의 검색 키워드에 임의의 단어를 지정하고 검색 버튼을 누르는 것을 예로 들어 보겠습니다.
우선, 검색 키워드를 입력하는 텍스트 박스에는 name 속성(name="p")이 지정되어 있으므로, 이하와 같이 그것을 이용합니다.
검색 키워드가 유리안 리트리버인 것은, YouTube에서 유리안 리트리버의 동영상을 보면서 본 기사를 쓰고 있으므로 왠지 그렇게 하고 있습니다.
SampleScript.java
webDriver.findElement(By.name("p")).sendKeys("ゆりあんレトリバー");
검색 버튼에는 id 및 name 속성이 지정되지 않았습니다.
이 경우 XPath 을 사용할 수 있습니다. XPath는 Chrome의 개발자 도구에서 확인하고 복사할 수 있습니다.
코드는 다음과 같습니다.
SampleScript.java
webDriver.findElement(By.xpath("//*[@id=\"ContentWrapper\"]/header/section[1]/div/form/fieldset/span/button/span/span")).click();
요약
소스는 이런 느낌입니다.
SampleScript.java
public class SampleScript {
public static void main(String[] args) {
System.setProperty("webdriver.chrome.driver", "C:\\Development\\selenium\\chromedriver.exe");
WebDriver webDriver = new ChromeDriver();
webDriver.get("https://www.yahoo.co.jp/");
webDriver.findElement(By.name("p")).sendKeys("ゆりあんレトリバー");
webDriver.findElement(By.xpath("//*[@id=\"ContentWrapper\"]/header/section[1]/div/form/fieldset/span/button/span/span")).click();
}
}
실제로 움직여 보면 다음과 같이 됩니다.
덧붙여서, 위에서는 굳이 마지막으로 브라우저를 닫고 있지 않습니다만, webDriver.quit();로 하는 것, 브라우저를 닫을 수가 있습니다.
quit 메서드를 호출하면 WebDriver 인스턴스에서 생성된 모든 브라우저가 닫히고 해당 브라우저의 Driver 프로세스도 종료됩니다. 반대로 말하면, quit 메소드를 호출하지 않으면 그 프로세스도 남은 채로 되어 버리므로 주의가 필요합니다.
Reference
이 문제에 관하여(Selenium에서 id 속성의 지정되지 않은 요소를 가져옵니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/NagaokaKenichi/items/7a111467dcae3354048d텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)