0
다음은 내 코드입니다 : -수 없습니다
입니다 내가 뭘하려고package Practice;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
public class Day6FramesRecap {
public static void main(String[] args) {
// TODO Auto-generated method stub
WebDriver driver = new FirefoxDriver();
driver.get("https://www.google.com/recaptcha/api2/demo");
int framenumber = frameset(driver,By.xpath(".//*[@id='recaptcha-anchor']/div[5]"));
driver.switchTo().frame(framenumber);
driver.findElement(By.xpath(".//*[@id='recaptcha-anchor']/div[5]")).click();
driver.switchTo().defaultContent();
try{
Thread.sleep(1000);
}catch(InterruptedException e){
e.printStackTrace();
}
int framenumber2 = frameset(driver,By.xpath(".//*[@id='recaptcha-verify-button']"));
driver.switchTo().frame(framenumber2);
driver.findElement(By.xpath(".//*[@id='recaptcha-verify-button']")).click();
}
public static int frameset(WebDriver driver, By by)
{
int i;
int framecount= driver.findElements(By.tagName("iframe")).size();
for(i=0;i<framecount;i++)
{
driver.switchTo().frame(i);
int count = driver.findElements(by).size();
if(count>0)
{
break;
}
else
{
System.out.println("Continue Looping");
}
}
driver.switchTo().defaultContent();
return i;
}
}
, 각 프레임을 반복하고 내가 필요로하는 요소를 찾기 위해 루프를 위해 사용합니다. 그러나, 나는 By.xpath(".//*[@id='recaptcha-anchor']/div[5]
즉 첫 번째 요소를 찾을 수 있어요 그를 클릭 한 후, 나는 By.xpath(".//*[@id='recaptcha-verify-button']
내가 그 내용의 오류가 발생하는 두 번째 요소를 클릭 할 수없는입니다 : - 스레드
예외 "main" org.openqa.selenium.NoSuchElementException : 찾을 수 없습니다 요소 : { "method": "xpath", "selector": ".//*[@ id = 'recaptcha-verify-button']" }
나는이 접근법에 대해 몰랐습니다. 감사합니다. – Khan