2017-07-27 3 views
0

Ich habe Stoppuhr auf mein SkriptTimeout in Selen

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

start = time.clock() 

driver = webdriver.Firefox() 
driver.get('https://ebay.com') 

nach diesem Code hinzufügen, um es für eine Weile (5 Sekunden) bleiben sollte, als andere Mitarbeiter tun, wie folgt aus:

element = driver.find_element_by_id("username") 
element.send_keys("some text") 

Wie es geht?

+0

Sie müssen [warten] (http://selenium-python.readthedocs.io/waits.html#waits) dann, die warten, bis Element vorhanden ist. –

+0

@SaurabhGaur Ich fand "bis". Kann ich es so verwenden, bis element_by_id ("Benutzername") erscheint. Können Sie zeigen, wie es geht, bitte –

+0

gibt es viele Beispiele, folgen [diese] (https://stackoverflow.com/questions/26566799/selenium-python-how-to-wait-until-the-page- is-loaded) oder [dies] (https://stackoverflow.com/questions/32717334/wait-until-element-is-not-present) ..Danke –

Antwort

1

Ich verbrachte viele Stunden und mit Hilfe von Gott und vielen Leuten von StackOverflow habe ich es endlich gelöst.

from selenium import webdriver 
from selenium.webdriver.support.ui import WebDriverWait 
from selenium.webdriver.support import expected_conditions as EC 
from selenium.webdriver.common.by import By 
from selenium.common.exceptions import TimeoutException 

driver = webdriver.Firefox() 
driver.get(''https://ebay.com'') 
delay = 30 

try: 
    myElem = WebDriverWait(driver, delay).until(EC.presence_of_element_located((By.ID, 'username'))) 
    element = driver.find_element_by_id("username") 
    element.send_keys("some text") 
except TimeoutException: 
    print ("Loading took too much time!") 

Es wäre meiner Meinung nach das Beste.