2017-09-09 7 views
0

요소 내 XPath는이요소 내 XPath는 고유

//System.setProperty("webdriver.chrome.driver", "C://chromedriver.exe"); 

//WebDriver driver= new FirefoxDriver(); 
//WebDriver driver= new ChromeDriver(); 

driver.manage().window().maximize(); 
driver.get("https://www.goindigo.in/"); 

driver.findElement(By.linkText("One Way")).click(); 
driver.findElement(By.xpath("//button[@class='btn buttonGlbl btn-close button-trigger']")).click(); 
driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS); 
driver.findElement(By.xpath("//div[@class='innertab-content one-way-tab-ctnt']//li[@class='city-dropdown destination-dropdown ps-destination-dropdown without_label']//div[@class='city-dropdown-list city-name-to']//ul//li[3]")).click(); 
} 
}// 
대답 위
+0

예를 ... 그래서 질문은 무엇인가? – Andersson

+0

드롭 다운 목록에서 도시를 선택할 수 없습니다. 진행 방법을 모르겠습니다. – Abhishek

답변

0
/System.setProperty("webdriver.chrome.driver", "C://chromedriver.exe"); 

//WebDriver driver= new FirefoxDriver(); 
//WebDriver driver= new ChromeDriver(); 

driver.manage().window().maximize(); 
driver.get("https://www.goindigo.in/"); 

WebElement onewayLink=driver.findElement(By.linkText("One Way")); 
onewayLink.click(); 
WebElement btnElement=driver.findElement(By.xpath("//button[@class='btn buttonGlbl btn-close button-trigger']")); 

WebDriverWait wait= new WebDriverWait(driver,20); 
wait.until(ExpectedConditions.visibilityOf(btnElement)); 
btnElement.click(); 
driver.findElement(By.xpath("//div[@class='innertab-content one-way-tab-ctnt']//li[@class='city-dropdown destination-dropdown ps-destination-dropdown without_label']//div[@class='city-dropdown-list city-name-to']//ul//li[3]")).click(); 
} 
}// 
+0

지금 시도했지만 같은 오류가 발생했습니다. 확인 버튼을 클릭 할 수 있지만 이후에는 첫 번째 드롭 다운에서 도시를 선택할 수 없습니다. – Abhishek

+0

그래 다시 시도하자 – iamsankalp89

+0

물방울이 떨어지면 그것을 선택해야한다 – iamsankalp89

0

고유의 경우에도 눈에 보이는 오류가되지 않은 경우에도 가시 오류가 아닙니다, 아무도 근본 원인을 공격하지, 그것은 아무 상관이 어떤 요소를 기다릴 필요가있다.

근원은 도시 입력란을 클릭하여 도시 목록을 팝업으로 표시 한 다음 원하는 도시를 클릭해야합니다.

이것은 셀레늄 디자인 원리입니다. 셀레늄을 클릭하기 전에 요소가 표시되어야합니다.

셀렌 desinger 사용자가 관점에서 작업을 시뮬레이터 수 희망, 우리는 하나를 선택할 수 있습니다 전에 도시 목록을 볼 필요가있다. 그래서 셀레늄이 처음에는 도시 목록을 '보게'해야합니다.

그러나 선택에서 옵션을 선택하려는 경우 을 직접 클릭하여 원하는 옵션을 직접 클릭 할 수 있습니다. 옵션을 처음으로 팝업으로 만들 필요가 없습니다.

아래 링크에서 그러한 질문을 찾을 수 있으며 이에 대한 자세한 답변을 제공합니다.
Using firefox webdriver trying to load the option Name from dropdown but not working?

코드가 문제 해결 : 당신은 고유의 선택기를 사용하는 경우에도 당신은 ElementNotVisible 오류를 얻을 수

driver.get("https://www.goindigo.in/"); 
// click 'One Way' tab 
driver.findElement(By.css(".one-way-tab")).click(); 
// Click 'OK' on Information pop-up 
driver.findElement(By.css(".buttonGlbl.btn-close")).click(); 

// Click 'From' city input box for 'One Way' 
driver.findElement(By.css("#oneWay .origins-value.city-name-value")).click(); 
// Choose city 'Delhi' 
driver.findElement(By.css("#oneWay .origin-city-name")) 
     .findElement(By.partialLinkText("Delhi")) 
     .click(); 

// Click 'To' city input box for 'One Way' 
driver.findElement(By.css("#oneWay .destinations-value.city-name-value")).click(); 
// Choose city 'Indore' 
driver.findElement(By.css("#oneWay .dest-city-name")) 
     .findElement(By.partialLinkText("Indore")) 
     .click(); 
+0

안녕하세요, 감사합니다. 코드로 실행할 수 있습니다. 하지만 어쨌든 스크립트가 목록에서 델리를 자동으로 선택하면 처음에는 실패했지만 다른 도시로 바뀌 었습니다. 델리가 왜 자동으로 선정되는지 나는 알게 될 것이다. – Abhishek