簡體   English   中英

如何從搜索返回的元素列表中單擊隨機元素

[英]How to Click Random element from a list of elements returned by a search

我有顯示產品列表的頁面,我只需要從列表中單擊特定類型的列表,以便將此特定類型保存為“Webelement”。 現在,每當我登陸這個頁面時,我都會檢查一個條件並只點擊第一個產品。 但是,我的要求是在檢查條件后,我需要單擊列表中的任何隨機產品。 請參閱下面的代碼。 請建議。

 driver.findElement(By.linkText("ALL EQUIPMENT")).click();
     driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);

     List <WebElement> listings = driver.findElements(By.cssSelector("a[href*='/listing?listingid']"));

              for (int i=0; i < listings.size(); i++) {

      WebElement requiredlisting = listings.get(i);
      System.out.println(i);
      requiredlisting.click();
     Thread.sleep(10000);


     getvalue = driver.findElement(By.xpath("//div[7]/span")).getText();
     System.out.println(getvalue);


         driver.findElement(By.xpath("//div[3]/div[2]/input")).click();
         Thread.sleep(10000);
         driver.findElement(By.id("listingQuestion")).click();
        Thread.sleep(10000);
         driver.findElement(By.id("listingQuestion")).sendKeys("Where is the listing located");
            Thread.sleep(10000);             
         driver.findElement(By.name("submitq")).click();
            Thread.sleep(10000);                         
         driver.findElement(By.xpath("//div/div[2]/div[3]/input")).click();
         Thread.sleep(10000);

         driver.findElement(By.id("uname")).click();
         driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
         driver.findElement(By.linkText("Sign Out")).click();

您可以使用隨機生成器類。

   Random rand = new Random();
   string locator = string.Format("//div/div[2]/div[{0}]/input", rand.Next(5)); 
   // Where 5 is the number of the elements in the list
   driver.FindElement(By.Xpath(locator)).Click();

這是 C# 中的代碼,與 Java 中的代碼幾乎是 1 對 1 的。 此外,如果這不是您列表中的正確定位器,請更改 Xpath 定位器。

因此,由於您的要求是單擊任何隨機元素,因此不要使用 for-loop 來單擊該元素 您可以使用Random類並使用列表的大小初始化其對象,然后單擊列表中的任何元素,如下所示:

List <WebElement> listings = driver.findElements(By.cssSelector("a[href*='/listing?listingid']"));
Random r = new Random();
int randomValue = r.nextInt(listings.size()); //Getting a random value that is between 0 and (list's size)-1
listings.get(randomValue).click(); //Clicking on the random item in the list.

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM