Selenium Xpath İle Unable to Locate Element hatası

Kodlar:

import csv
from getpass import getpass
from time import sleep
from selenium.webdriver.common.keys import Keys
from selenium.common.exceptions import NoSuchElementException
from selenium import webdriver

# Select the driver
driver = webdriver.Firefox()
driver.get("https://twitter.com/login")

#Twitter Log-in
username = driver.find_element_by_xpath('//input[@name="session[username_or_email]"]')
username.send_keys('blabla')

#Twitter password
password = driver.find_element_by_xpath('//input[@name="session[password]"]')
password.send_keys('blabla')

#clicking
password.send_keys(Keys.RETURN)

#Searching hashtag
search_input = driver.find_element_by_xpath('//input[@aria-label="Search query"]')
search_input.send_keys('blabla')
search_input.send_keys(Keys.RETURN)

Hashtag arama kısmına kadar herhangi bir sorun olamadan Twitter’a girebiliyorum ancak, arama kısmı için xpath’i girdiğimde şöyle bir hata veriyor:

NoSuchElementException: Message: Unable to locate element: //input[@aria-label="Search query"]

Twitter’da hasthag aramak istiyorum ancak olmuyor sebebi nedir?

Find öğresi tarama yaptığı için problem çıkartıyor başka bir şey aramaya çalıştığında. Üzerine gelmemesi lazım. Belirli aralıklarla bakmalı.

from selenium import webdriver
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.Firefox()
driver.get("http://somedomain/url_that_delays_loading")
try:
    element = WebDriverWait(driver, 10).until(
        EC.presence_of_element_located((By.ID, "myDynamicElement"))
    )
finally:
    driver.quit()

Yukarıda bulunan kodda WebDriverWait ile belirli bir süre kısmı bekletiyor daha sonra aramasını yapıyor.

Konuyla ilgili daha fazla bilgi almak istersen eğer tıkla.

2 Beğeni

hocam çok çok teşekkür ederim. WebDriverWait kullanmadım ancak time.sleep(5) eklemek yeterli oldu. Teşekkürler iyi forumlar.

1 Beğeni

waitleri öğrenmeniz şart.
sleep, eğer fonksiyonu eğer ayrı bir thread da async çalıştırmadıysanız uygulamayı dondurur.
Hemde farklı internet hızları ile karşılaştığınızda farklı sürelere ihtiyaç duyacağınız için ya hata oluşturur yada zaman kaybına sebebiyet verir.