>  기사  >  Java  >  Java에서 WebDriver로 JavaScript 코드를 실행하는 방법은 무엇입니까?

Java에서 WebDriver로 JavaScript 코드를 실행하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-10-24 18:46:21894검색

How to Execute JavaScript Code with WebDriver in Java?

Java에서 WebDriver로 JavaScript 실행

Java를 사용하여 JavaScript를 WebDriver(Selenium 2)와 통합하면 향상된 테스트 기능을 제공합니다. 시작하기 페이지에 제공된 지침에 따라 "./go webdriverjs" 명령을 어느 위치에서 실행해야 하는지 이해하는 것이 중요합니다.

답변:

실행 "./go webdriverjs" 명령은 특정 폴더에서 실행할 필요가 없습니다. 이 명령은 일반적으로 JavaScript로 테스트 작성을 허용하는 WebDriver용 추가 언어 바인딩인 WebDriverJs를 사용하여 JavaScript 테스트를 실행하려는 경우에 사용됩니다.

그러나 목표가 Java의 WebDriver 내에서 JavaScript 코드를 실행하는 것이라면 접근 방식이 다릅니다. Java WebDriver 코드에서 JavaScript 스니펫을 실행하려면 다음을 활용하십시오.

<code class="java">WebDriver driver = new AnyDriverYouWant();
if (driver instanceof JavascriptExecutor) {
    ((JavascriptExecutor)driver).executeScript("yourScript();");
} else {
    throw new IllegalStateException("This driver does not support JavaScript!");
}</code>

또는 나중에 사용하기 위해 JavascriptExecutor를 변수에 할당할 수 있습니다.

<code class="java">WebDriver driver = new AnyDriverYouWant();
JavascriptExecutor js;
if (driver instanceof JavascriptExecutor) {
    js = (JavascriptExecutor)driver;
}

// later on...
js.executeScript("return document.getElementById('someId');");</code>

executeScript() 메서드는 함수 호출과 원시 JS를 허용하므로 웹 요소를 조작하고 페이지와 상호 작용할 수 있습니다. 예:

  • ID로 요소 찾기:

    <code class="java">js.executeScript("return document.getElementById('someId');");</code>
  • 테두리 추가 요소:

    <code class="java">WebElement element = driver.findElement(By.anything("tada"));
    js.executeScript("arguments[0].style.border='3px solid red'", element);</code>
  • 모든 입력 요소를 라디오 버튼으로 변경:

    <code class="java">js.executeScript(
              "var inputs = document.getElementsByTagName('input');" +
              "for(var i = 0; i < inputs.length; i++) { " +
              "    inputs[i].type = 'radio';" +
              "}" );</code>

위 내용은 Java에서 WebDriver로 JavaScript 코드를 실행하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.