找到按钮(onclick)并单击所有按钮

时间:2016-01-27 18:15:36

标签: javascript java selenium selenium-webdriver

我有麻烦了。我使用java和webdriver。我想去http://demo.opencart.com/,找到" ipod", 我有4个结果,我想比较它们(通过点击每个按钮"比较"),但有2个问题。

  1. 如何点击比较(有onclick)

    <button type="button" data-toggle="tooltip" title="" onclick="compare.add('48');" data-original-title="Compare this Product"><i class="fa fa-exchange"></i></butto n的&GT;

  2. 如何比较我的所有搜索结果?

3 个答案:

答案 0 :(得分:2)

你可以试试这个:

    package pkYourPackage;

    import java.util.List;

    import org.openqa.selenium.By;
    import org.openqa.selenium.JavascriptExecutor;
    import org.openqa.selenium.WebDriver;
    import org.openqa.selenium.WebElement;
    import org.openqa.selenium.chrome.ChromeDriver;


    // http://demo.opencart.com/index.php?route=product/category&path=24

    public class OpenCart_StackOverflow {
        static WebDriver driver;
        public static void main(String[] args) {
            System.setProperty("webdriver.chrome.driver", "C:/.....put_ path/chromedriver.exe");
            driver = new ChromeDriver();

            driver.get("http://demo.opencart.com/index.php?route=product/category&path=24");
            try{Thread.sleep(5000);}catch(Exception e){}

            List<WebElement> list = driver.findElements(By.xpath("//button[contains(@data-original-title,'Compare this')]/i"));
            for(int i = 0 ; i < list.size() ; i++){
                list.get(i).click();

                try{Thread.sleep(1500);}catch(Exception e){}

            }
            try{Thread.sleep(1500);}catch(Exception e){}

            // click on 'product comparison' to compare
            ((JavascriptExecutor)driver).executeScript("arguments[0].click();",driver.findElement(By.xpath("//*[contains(text(),'product comparison')]")));
            try{Thread.sleep(10000);}catch(Exception e){}
            driver.close();
            driver.quit();

        }
    }

答案 1 :(得分:0)

我做了这样的事:

 public void count(){

        List <WebElement> button = driver.findElements(By.xpath("//*[@data-original-title='Compare this Product']"));

    for(WebElement buttons: button){
        buttons.click();
    }

这是一个很好的解决方案吗?肯定它比Kumar的解决方案短得多,而且有效。

答案 2 :(得分:0)

for(WebElement buttons: button){
    buttons.click();
}

以下两个代码都以相同的方式使用 这个:

for(int i = 0 ; i < button.size() ; i++)
{
    button.get(i).click();
}

或使用此:

{{1}}