0

So i have been trying to fill in text in google.com and press left mouse button on the search button (I know i can fix this by pressing enter on google.com but my real project requires me to press left mouse button, I'm using google.com as a testing page)

My first try:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver import ActionChains

driver = webdriver.Firefox()
driver.get("https://google.com")
driver.find_element_by_name("q").send_keys("kek")
driver.find_element_by_name("btnK").click()

I got an error: selenium.common.exceptions.ElementNotInteractableException: Message: Element could not be scrolled into view

After googling and finding a fix for my previous error I edited the code to:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver import ActionChains

driver = webdriver.Firefox()
driver.set_page_load_timeout("10")

driver.get("https://google.com")
driver.find_element_by_name("q").send_keys("kek")
element = driver.find_element_by_name("btnK")
actions = ActionChains(driver)
actions.move_to_element(element).perform()

I got the following error: selenium.common.exceptions.WebDriverException: Message: TypeError: rect is undefined

Now I have no clue how to fix this error. The button is clearly visible/clickable and the page is fully loaded.

Edit:

After trying the fix of x I got the same error: "selenium.common.exceptions.WebDriverException: Message: TypeError: rect is undefined".

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver import ActionChains

driver = webdriver.Firefox()
driver.set_page_load_timeout("10")

driver.get("https://google.com")
driver.find_element_by_name("q").send_keys("kek")
element = driver.find_element_by_name("btnK")
actions = ActionChains(driver)
actions.move_to_element(element)
actions.click()
actions.perform()
1
  • Instead of click on button try submit after send_keys() driver.find_element_by_name("q").submit() Commented Dec 20, 2019 at 23:04

1 Answer 1

1

Try

driver.get("https://google.com")
driver.find_element_by_name("q").send_keys("kek")

driver.execute_script("document.getElementsByName('btnK')[0].click();")

Welcome to SO:-)

Sign up to request clarification or add additional context in comments.

2 Comments

So have have tried this, but I am still getting the same error. I have updated my post, see under: "Edit:". I might have edited the code wrong, I'm fairly new to python+ selenium.
@Grasmat Edit my answer for you!

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.