2014-02-06 32 views
0

我正在動態頁面上ID,Xpath和名稱屬性不時變化。 爲了使我的腳本穩定。我想隨機點擊頁面上的5個按鈕,然後在1-100之間發送一個隨機數量到可用的輸入框,最後點擊Submit按鈕(SCOMMETTI)進行下注。頁面的鏈接如下: http://sports.williamhill.it/bet_ita/it/betting/y/5/Calcio.html如何使用硒webdriver隨機點擊一個按鈕,並將數字插入到顯示的輸入框

下面的腳本失敗,因爲該事件保持在後端改變:

enter code here 
    driver.findElement(By.xpath("//*[@id='tup_selection570167price']")).click(); 
    driver.findElement(By.xpath("//*[@id='slip_sgl_stake570167L']")).sendKeys("5"); 
    Thread.sleep(1000); 

    driver.findElement(By.xpath("//*[@id='tup_selection570176price']")).click(); 
    driver.findElement(By.xpath("//*[@id='slip_sgl_stake570176L']")).sendKeys("10"); 
    Thread.sleep(1000); 

    driver.findElement(By.xpath("//*[@id='tup_selection570179price']")).click(); 
    driver.findElement(By.xpath("//*[@id='slip_sgl_stake570179L']")).sendKeys("4"); 
    Thread.sleep(1000); 

    driver.findElement(By.xpath("//*[@id='tup_selection570191price']")).click(); 
    driver.findElement(By.xpath("//*[@id='slip_sgl_stake570191L']")).sendKeys("7"); 
    Thread.sleep(1000); 

    driver.findElement(By.xpath("//*[@id='tup_selection570200price']")).click(); 
    driver.findElement(By.xpath("//*[@id='slip_sgl_stake570200L']")).sendKeys("100"); 
    Thread.sleep(1000); 

    System.out.println("Placing amount on Bet"); 
+0

我已經嘗試使用以下: – user3276076

+0

更新您的帖子上面。 –

+0

感謝Paul,上面的腳本保持失敗,因爲事件在後端更新,這就是原因,我想隨機點擊頁面上顯示的事件按鈕。 – user3276076

回答

0

如果你的身份證,XPath和名稱屬性的變化,不時,你應該存儲在一個數組中,並用一個循環來點擊它們。像這樣

ArrayList<WebElement> input_type = (ArrayList<WebElement>) 
driver.findElements(By.tagName("input")); 
      for (int i = 0; i < input_type.size(); i++) { 
       for(WebElement type : input_type) 
        { 

        if(type.getAttribute("type").equals("button")){ 
        type.click(); 
        type.submit(); 
      } 

享受!

+0

您能否詳細說明上面的anwser。謝謝 – user3276076

+0

如果你將這個代碼寫入你的函數,所以這個函數會存儲所有的輸入標籤,如[]現在它會存儲數組中所有可用的輸入標籤,然後通過循環,我們可以對特定元素執行幾個操作,如點擊,發送鍵等。 我希望你明白了。 –

相關問題