-1
A
回答
1
public class StackOverFlow {
@Test
public static void keepClicking(){
WebDriver driver = new FirefoxDriver();
driver.manage().timeouts().implicitlyWait(45, TimeUnit.SECONDS);
driver.manage().window().maximize();
driver.get("http://www.quackit.com/html/codes/html_radio_button.cfm");
List<WebElement> radios = driver.findElements(By.xpath("//*[@id='contentbar']/div/table[1]//input[@type='radio']"));
for (int i = 0; i < radios.size(); i++) {
// if you are getting stale element exception because of the page reload
radios = driver.findElements(By.xpath("//*[@id='contentbar']/div/table[1]//input[@type='radio']"));
System.out.println(radios.get(i).getAttribute("value"));
// select your radio and click to go to next page
radios.get(i).click();
driver.findElement(By.xpath("//*[@id='contentbar']/div/table[1]/tbody/tr[2]/td[2]/form/input[4]")).click();
// come back to your main page
driver.findElement(By.xpath("//*[@id='contentbar']/div/p[2]/a")).click();
}
}
}
運行上面的代碼檢查 - 您有多個單選按鈕,去到下一個頁面,回到主界面,點擊下一個電臺 - 在一個循環。
0
你可以試試下面的代碼:
WebDriver driver = new FirefoxDriver();
driver.navigate()
.to("https://www.garuda-indonesia.com/other-countries/en/index.page");
driver.manage().window().maximize();
driver.findElement(By.id("ui-id-4")).click();
WebDriverWait wait = new WebDriverWait(driver, 30);
wait.until(
ExpectedConditions.visibilityOfElementLocated(By
.id("originairportcode"))).sendKeys("j");
wait.until(
ExpectedConditions.visibilityOfElementLocated(By
.cssSelector("div#autocomplete-originairportcode ul#ui-id-9 li#CGK a")))
.click();
driver.findElement(By.id("destairportcode")).sendKeys("bali");
;
wait.until(
ExpectedConditions.visibilityOfElementLocated(By
.cssSelector("div#autocomplete-destairportcode ul#ui-id-16 li#DPS a")))
.click();
driver.findElement(By.id("departuredate")).click();
List<WebElement> ddate = driver.findElements(By
.cssSelector("a.ui-state-default"));
for (WebElement dd : ddate) {
if (dd.getText().equals("30")) {
dd.click();
}
}
driver.findElement(By.id("arrivaldate")).click();
driver.findElement(By.cssSelector("a.ui-datepicker-next.ui-corner-all"))
.click();
List<WebElement> rdate = driver.findElements(By
.cssSelector("a.ui-state-default"));
for (WebElement dd : rdate) {
if (dd.getText().equals("31")) {
dd.click();
}
}
driver.findElement(By.id("inputFormBookFlight")).submit();
List<WebElement> allRadios = wait
.until(ExpectedConditions.presenceOfAllElementsLocatedBy(By
.xpath("//div[@class='divtableResultsSD']/table/tbody/tr/td/table[@id='left']/tbody/tr/td/table/tbody/tr/td/input")));
driver.findElement(By.id("btnCheckPriceSdai")).click();
driver.navigate().back();
//first radio button is already selected,start index with 1
for (int i = 1; i < allRadios.size(); i++) {
allRadios = wait
.until(ExpectedConditions.presenceOfAllElementsLocatedBy(By
.xpath("//div[@class='divtableResultsSD']/table/tbody/tr/td/table[@id='left']/tbody/tr/td/table/tbody/tr/td/input")));
allRadios.get(i).click();
driver.findElement(By.id("btnCheckPriceSdai")).click();
driver.navigate().back();
}
driver.close();
}
相關問題
- 1. 遞歸循環Selenium Webdriver
- 2. Selenium WebDriver頁面對象
- 3. Selenium webdriver 2.0中的頁面加載 - java
- 4. 循環填充數據輸入 - Selenium WebDriver
- 5. 從Selenium WebDriver執行頁面的JavaScript
- 6. Selenium Webdriver循環控制,無限循環Java
- 7. Modal頁面使用Selenium webdriver自動化
- 8. 使用Selenium Webdriver滾動頁面
- 9. selenium-webdriver並等待頁面加載
- 10. 使用selenium webdriver處理登錄頁面
- 11. For循環檢查Selenium WebDriver中的項目列表
- 12. 在Python中刷新硒循環頁面
- 13. CasperJS頁面循環
- 14. 使用分頁(Selenium webdriver C#)
- 15. 如何在Selenium WebDriver的頁面對象(PageFactory)中使用數組?
- 16. 如何從Selenium Webdriver中的Frame導航回當前頁面
- 17. 如何使用selenium webdriver驗證頁面中存在的行數
- 18. Selenium Webdriver:如何獲取當前頁面中的所有cookies
- 19. Selenium WebDriver中的頁面對象模式是什麼?
- 20. 在selenium Webdriver中設置環路參數
- 21. python中的selenium webdriver
- 22. selenium中的sendKeys()WebDriver
- 23. Selenium - webdriver測試if-else循環卡住/出錯
- 24. Selenium :: WebDriver :: Error :: ElementNotVisibleError當循環點擊使用Watir按鈕
- 25. 頁面標題在selenium webdriver中未正確捕獲
- 26. 在Selenium Webdriver中顯式觸發頁面加載阻塞
- 27. 在WebDriver中加載頁面之前刪除部分HTML - Selenium&Python
- 28. 如何使用selenium webdriver在Firefox,Chrome,PhantomJS中保存頁面?
- 29. Selenium IDE - sideflow.js循環
- 30. Selenium Webdriver
這是不是最好的解決辦法,但作爲一種解決方法,你可以在一個外部文件的單選按鈕,所有的定位器存儲諸如財產或與它們對應的價格脫穎而出,你想驗證。 您可以迭代一個循環,直到單選按鈕的計數執行相同的操作。 –