Я не могу открыть выпадающее меню «Все» со страницы Amazon.ca через веб-драйвер селена с помощью Java - PullRequest
0 голосов
/ 22 октября 2019

Репро шаги:

  • Открыть домашнюю страницу amazon
  • см. Опцию «ВСЕ» в левой верхней части страницы.
  • попытатьсящелкните по нему (через Selenium WebDriver с использованием Java)

Код:

new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.className("nav-search-scope nav-sprite"))).click();
         WebElement element=driver.findElement(By.className("nav-search-scope nav-sprite"));

new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.className("nav-search-scope nav-sprite"))).click();
         WebElement element=driver.findElement(By.className("nav-search-scope nav-sprite"));

Ответы [ 2 ]

0 голосов
/ 23 октября 2019

Надеюсь, это поможет вам.

WebElement lelement=driver.findElement(By.className("nav-search-scope nav-sprite"));
Select oSelect = new Select(lelement);        
java.util.List <WebElement> elementCount = oSelect.getOptions(); // get all options from your drop down 
int iSize = elementCount.size();
String [] arrbtn= new String [iSize];           
for (int j = 0; j < iSize; j++) {
    arrbtn[j]=elementCount.get(j).getText();
    if(arrbtn[j]=="All"){ 
        oSelect .selectByVisibleText("All");
    }
}

Или Вы можете использовать следующий метод для выбора опции «Все».

public static void  getDropdownAllOption(WebDriver driver,WebElement lelement)
{
    Select oSelect = new Select(lelement);        
    java.util.List <WebElement> elementCount = oSelect.getOptions(); // get all options from your drop down 
    int iSize = elementCount.size();
    String [] arrbtn= new String [iSize];           
    for (int j = 0; j < iSize; j++) {
        arrbtn[j]=elementCount.get(j).getText();
        if(arrbtn[j]=="All"){ 
            oSelect .selectByVisibleText("All");
        }
    }

}

Если вам нужно выбрать раскрывающийся список по видимому тексту, вы можете использовать следующий метод:

public static void selectByVisible(WebElement lelement,String selectValue) 
{
    WebElement mySelect =lelement;                  
    Select mySelectd= new Select(mySelect);         
    mySelectd .selectByVisibleText(selectValue);
 }
0 голосов
/ 23 октября 2019

Пожалуйста, попробуйте это

driver = new ChromeDriver();
        driver.get("https://www.amazon.ca/");
        WebDriverWait wait = new WebDriverWait(driver, 10);

        driver.findElement(By.className("nav-search-scope")).click();
        Select selects = new Select(driver.findElement(By.id("searchDropdownBox")));

        selects.getOptions().forEach(e -> System.out.println(e.getText() + "  is Displayed : " + e.isDisplayed()));
        selects.getOptions().forEach(e -> System.out.println(e.getText() + "  is Enabled : " + e.isEnabled()));
        selects.getOptions().forEach(e -> System.out.println(e.getText() + "  is Selected : " + e.isSelected()));

        driver.quit();
...