Как найти элемент со страницы Amazon без использования пути xpath или CSS? - PullRequest
0 голосов
/ 24 марта 2020
  1. Go здесь .

  2. Попробуйте найти кнопку-флажок Книги с инспектором

  3. Нажмите на кнопку-флажок для выбора

4.

Я пытаюсь перебрать и найти уникальный идентификатор «Книги». Если вы знаете другой способ сделать, нажмите без итерации, это хорошо. Я использовал эти строки кода:

List<WebElement> elements = new ArrayList<WebElement>(obj.findElements(By.cssSelector("span.a-label.a-checkbox-label")));
    for (WebElement element : elements) {
        if (element.getText() == "Books"){
            System.out.println("");
            element.click();
        }
else
            System.out.println("Condtition from if is not true");
    }

Ответы [ 2 ]

0 голосов
/ 24 марта 2020

Вы можете достичь без итерации, найдите элемент по xpath с этим значением: //label[contains(., 'Books')]//input.

WebElement element = driver.findElement(By.xpath("//label[contains(., 'Books')]//input"));
element.click();
0 голосов
/ 24 марта 2020

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

WebElement element = driver.findElement(By.xpath("//div[@id='widgetFilters']//span[@class='a-declarative']//span[contains(text(),'Books')]"));
element.click();

И если вы хотите параметризовать xpath и хотите получить его, используя Строка, то вы можете сделать это как:

String filterName = "Books";
WebElement element = driver.findElement(By.xpath("//div[@id='widgetFilters']//span[@class='a-declarative']//span[contains(text(),'"+filterName+"')]"));
element.click();
...