1

trying to build a bot to my own services, but while i'm trying to run its crashs login_button = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CSS_SELECTOR, "//div[@class='loginRegisterButtons sb-login-register-buttons clearfix ember-view']//a[@class='btn signin-btn sbLoginBtn buttons1571052392296']"))) login_button.click()

the html

<div class="loginRegisterButtons sb-login-register-buttons clearfix ember-view">
    <div>
        <a class="btn signin-btn sbLoginBtn buttons1571052392296">
           <span class="btf-text">ENTRAR</span>
        </a>
    </div>
</div>
  • Please use code tags. Why are you using `By.CSS_SELECTOR` when your selector is XPATH? –  Jul 16 '20 at 19:26

1 Answers1

0

The desired element is a Ember.js enabled element, so to click on the element you have to induce WebDriverWait for the element_to_be_clickable() and you can use either of the following Locator Strategies:

  • Using CSS_SELECTOR:

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "a.btn.signin-btn.sbLoginBtn > span.btf-text"))).click()
    
  • Using XPATH:

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//span[@class='btf-text' and text()='ENTRAR']"))).click()
    
  • Note : You have to add the following imports:

    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC
    
undetected Selenium
  • 183,867
  • 41
  • 278
  • 352