Selenium Timeoutexception Error
Still working on this Instagram problem, i really need your help. Here is my code: input_button = wait(browser,10).until(EC.element_to_be_clickable((By.XPATH, '//button[@class ='
Solution 1:
As per your requirement, you can use this code :
It'll search for "This is testing" string in search bar of Instagram.
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
driver = webdriver.Chrome(executable_path = r'D:/Automation/chromedriver.exe')
driver.get("https://www.instagram.com/accounts/login/")
username = WebDriverWait(driver, 10).until(
EC.element_to_be_clickable((By.NAME, "username")))
password = WebDriverWait(driver, 10).until(
EC.element_to_be_clickable((By.NAME, "password")))
username.send_keys("your username")
password.send_keys("your password")
driver.find_element_by_tag_name('button').click()
search = WebDriverWait(driver, 10).until(
EC.element_to_be_clickable((By.XPATH, "//span[text()='Search']")))
search.click()
driver.find_element_by_xpath("//div[@role='dialog']/preceding-sibling::input").send_keys("This is testing")
Solution 2:
You are getting this error because of generic class of input fields. Every time you open the page the classes names will be generated randomly. So how to fix it? For example like this:
imagine you want to log in, you have to:
- click on
email
input field - type information
- click on
password
input field - type information
- click on
Log in
button
The sample code could be like this:
# xpath will work every time because it is static
email_input = wait(browser,10).until(EC.element_to_be_clickable((By.XPATH,
'//form/div[1]/div/div/input'))) # locate email input
email_input =ActionChains(browser)
email_input.move_to_element(email_input)
email_input.click()
email_input.sendKeys("email")
email_input.perform()
password_input = wait(browser,10).until(EC.element_to_be_clickable((By.XPATH,
'//form/div[2]/div/div/input'))) # locate password input
password_input =ActionChains(browser)
password_input.move_to_element(password_input)
password_input.click()
email_input.sendKeys("password")
password_input.perform()
login_button = wait(browser,10).until(EC.element_to_be_clickable((By.XPATH,
'//span/button'))) # locate login button
login_button_action=ActionChains(browser)
login_button_action.move_to_element(login_button )
login_button_action.click()
login_button_action.perform()
To search something in search bar you have to do this:
- click on
search
input field - type information
- wait until
results
will load - click on the one of the
results
Code:
import time # will be need below
search_input = wait(browser,10).until(EC.element_to_be_clickable((By.XPATH,
"//input[@placeholder = 'Search']"))) # locate search input
search_input =ActionChains(browser)
search_input.move_to_element(search_input)
search_input.click()
search_input.sendKeys("fermer")
search_input.perform()
time.sleep(5) # wait 5 seconds until dropdown will appear
dropdown_menu = wait(browser,10).until(EC.element_to_be_clickable((By.XPATH,
"//a[@href = '/explore/tags/fermermaid/']"))) # locate fermeraid
dropdown_menu = ActionChains(browser)
dropdown_menu.move_to_element(dropdown_menu)
dropdown_menu.click()
dropdown_menu.perform()
Post a Comment for "Selenium Timeoutexception Error"