Нажатие на кнопку с Selenium с помощью Xpath или CSS Selector - PullRequest
0 голосов
/ 05 марта 2020

Я потратил пару часов, пытаясь щелкнуть по кнопке с помощью различных селекторов, прежде чем задавать вопрос здесь, но, похоже, ничего не работает

WebElement add= driver.findElement(By.partialLinkText("+"));
WebElement add= driver.findElement(By.xpath("/*[name()='svg']/*[name()='button']"));
WebElement confirm = driver.findElement(By.xpath("//a[contains(@class, 'IconButton-h85035-0 indexstyles__PlusButton')]"));

Нет доступных примеров с похожим html макетом как страница, с которой я работаю. Я не уверен, как создать xPath для кнопки. Буду признателен за любые советы о том, как создать xPath или селектор CSS, готового решения не ожидается, но любая помощь поможет понять, как ссылаться на этот конкретный элемент.

Это код плюса. кнопка:

<button data-testid="tselectionSpinbuttonPlus" type="button" tabindex="-1" aria-hidden="true" width="44px" height="44px" class="IconButton-h85035-0 indexstyles__PlusButton-sc-108enfc-3 bAZDfp">
    <svg viewBox="0 0 24 24" width="1.5em" height="1.5em" aria-hidden="true" focusable="false" class="BaseSvg-sc-9y47q5-0 PlusIcon___StyledBaseSvg-sc-11rza9m-0 VCaQT">
      <path d="M13 11V3h-2v8H3v2h8v8h2v-8h8v-2h-8z">
      </path>
    </svg>
 </button>

enter image description here

Ответы [ 2 ]

1 голос
/ 05 марта 2020

Чтобы найти / щелкнуть элемент, вы можете использовать одну из следующих Стратегий локатора :

  • cssSelector :

    driver.findElement(By.cssSelector("button[data-testid='tselectionSpinbuttonPlus']")).click();
    
  • xpath :

    driver.findElement(By.xpath("//button[@data-testid='tselectionSpinbuttonPlus']")).click();
    

В идеале найти / щелкнуть элемент, который необходимо вызвать WebDriverWait для element_to_be_clickable(), и вы можете использовать любую из следующих стратегий локатора :

  • cssSelector:

    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("button[data-testid='tselectionSpinbuttonPlus']"))).click();
    
  • xpath:

    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//button[@data-testid='tselectionSpinbuttonPlus']"))).click();
    
0 голосов
/ 05 марта 2020

Пожалуйста, попробуйте с ниже: Фрагмент кода

WebElement add= driver.findElement(By.partialLinkText("+"));
        Actions ac1 = new Actions(driver);
                    ac.clickAndHold(add).build().perform();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...