0

There is a problem (the "if" part).

It doesn't wait for me to click left arrow (as an example) to do the task and just instantly runs it.

from selenium import webdriver
import chromedriver_binary  # Adds chromedriver binary to path
from selenium.webdriver import ActionChains
from selenium.webdriver.common.keys import Keys

driver = webdriver.Firefox()
driver.get("https://www.google.com/")
if Keys.ARROW_LEFT:
    element = driver.find_element_by_css_selector('.gLFyf')
    element.send_keys('khkh')
    element.send_keys(Keys.ENTER)
help-info.de
  • 6,695
  • 16
  • 39
  • 41
Esi Pc
  • 3
  • 1

1 Answers1

0

statement if Keys.ARROW_LEFT: will always be true

you have to use waiters.
either implicitly_wait or WebDriverWait

so it will be

driver = webdriver.Firefox()
driver.implicitly_wait(10)
driver.get("https://www.google.com/")
element = driver.find_element_by_css_selector('.gLFyf')
element.send_keys('khkh')
element.send_keys(Keys.ENTER)

or

driver = webdriver.Firefox()
driver.get("https://www.google.com/")
element = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, ".gLFyf")))
element = driver.find_element_by_css_selector('.gLFyf')
element.send_keys('khkh')
element.send_keys(Keys.ENTER)

helpful links: waits, expected_conditions

olli_kahn
  • 157
  • 6