如何使用selenium webdriver随机点击按钮并在显示的输入框中插入数字

时间:2014-02-06 11:49:42

标签: java selenium-webdriver

我正在开发一个动态页面,其中ID,Xpath和name属性会不时发生变化。 为了使我的脚本稳定。我想随机点击页面上的5个按钮,然后在1-100之间随机发送一个可用的输入框,最后点击提交按钮(SCOMMETTI)进行下注。该页面的链接如下: http://sports.williamhill.it/bet_ita/it/betting/y/5/Calcio.html

以下脚本失败,因为事件在后端不断变化:

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");

1 个答案:

答案 0 :(得分:0)

如果您的ID,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();
            }

享受!