>

시나리오는 http://way2automation.com 웹 사이트에 로그인 한 다음 경고로 이동해야합니다. 페이지를 클릭 한 다음 간단한 알림에서 버튼을 클릭하십시오.이 버튼에는 id가 없습니다. 간단한 Java 스크립트 기능 만 있습니다. 어떻게 처리 할 수 ​​있습니까?

package sampletest;
import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.interactions.Actions;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
public class alertspractice {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        System.setProperty("webdriver.chrome.driver","F:\\drivers for browsers\\chrome driver\\chromedriver.exe");
          ChromeDriver driver=new ChromeDriver();
        driver.get("http://way2automation.com/way2auto_jquery/index.php");
        driver.manage().window().maximize();
        WebElement name=driver.findElement(By.name("name"));
        name.sendKeys("jayath");
        WebElement Phone =driver.findElement(By.name("phone"));
        Phone.sendKeys("8790141375");;
        WebElement email=driver.findElement(By.name("email"));
        email.sendKeys("a@yopmail.com");
        WebElement city =driver.findElement(By.name("city"));
        city.sendKeys("visakhapatnam");
        WebDriverWait wait=new WebDriverWait(driver,40);
        wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath(".//[@id='load_form']/fieldset[6]/input")));
        WebElement username =driver.findElement(By.xpath(".//*[@id='load_form']/fieldset[6]/input"));
        username.sendKeys("jayath1234");
        WebElement password =driver.findElement(By.xpath(".//*[@id='load_form']/fieldset[7]/input"));
        password.sendKeys("jayath234");

        WebElement submit1 =driver.findElement(By.xpath(".//*[@id='load_form']/div/div[2]/input"));
        submit1.submit();

        WebDriverWait wait2=new WebDriverWait(driver,40);
        wait2.until(ExpectedConditions.presenceOfElementLocated(By.linkText("Alert")));
        WebElement alert123=driver.findElement(By.linkText("Alert"));
        alert123.click();
        wait2.until(ExpectedConditions.presenceOfElementLocated(By.xpath("//html/body/button")));
        WebElement getalert=driver.findElement(By.xpath("//html/body/button"));
        JavascriptExecutor js = (JavascriptExecutor)driver;
        js.executeScript("arguments[0].click();", element);


    }
}


  • 답변 # 1

    마지막으로 파고 난 후에 경고 섹션으로 이동하기 위해 코드에서 직접 링크를 가져와야했습니다. 해당 페이지에는 두 개의 단추가 있는데, 하나는 탭 뒤에 숨겨져 있으며 입력 경고입니다. 첫 번째 버튼이라고 가정하지만 입력 알림에 대해서도 변경하기가 어렵지 않습니다.

    //button[contains(text(), 'Click the button to display an alert box:')]
    
    

  • 답변 # 2

    WebDriverWait wait2=new WebDriverWait(driver,40);
    wait2.until(ExpectedConditions.presenceOfElementLocated(By.xpath("//button[contains(text(), 'Click the button to display an alert box:')]")));
    WebElement alert123=driver.findElement(By.xpath("//button[contains(text(), 'Click the button to display an alert box:')]"));
    alert123.click();
    
    

관련 자료

  • 이전 asp.net mvc - Glassmapper의 편집 가능 필드가 Sitecore RenderField 파이프 라인을 호출하지 않는 이유
  • 다음 opencv3.0 - python 27/opencv 33 - cv2initundistortrectifymap에서 오류가 발생했습니다 정렬되지 않은 수정 된 이미지를 표시하지 않음