Как нажать кнопку без атрибутов идентификатора или имени - PullRequest
0 голосов
/ 29 января 2020

Пытаясь получить селен, нажмите кнопку на веб-странице. Не удается найти элемент, чтобы заставить его щелкнуть.

<button type="submit" class="xButton xCTA xSubmit">
  <span>Enter</span>
</button>

Ответы [ 2 ]

1 голос
/ 29 января 2020
driver.find_element_by_xpath("//button[@class='xButton xCTA xSubmit'].click()
driver.find_element_by_css_selector("button[type='submit']").click()
driver.find_element_by_xpath("//span[contains(text(), 'Enter')]").click()

Любой из них должен сделать свое дело.

0 голосов
/ 29 января 2020

Хотя <button> не имеет атрибута or, вы все равно можете использовать другие атрибуты, например, class, innerText, et c.

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

  • Использование Python и CSS_SELECTOR:

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "button.xButton.xCTA.xSubmit[type='submit'] > span"))).click()
    
  • Использование Java и XPATH:

    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//button[@class='xButton xCTA xSubmit']/span[text()='Enter']"))).click();
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...