2017-07-27 94 views
0

我有这样的代码,它应该保持了一段时间(5秒)后,秒表添加到我的剧本超时硒

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

start = time.clock() 

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

,比其他工作人员,像这样:

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

怎么做?

+0

然后,您需要使用[等待](http://selenium-python.readthedocs.io/waits.html#waits),它将一直等到元素出现。 –

+0

@SaurabhGaur我发现“直到”。我可以使用它,直到出现element_by_id(“用户名”)。你能告诉我该怎么做,请 –

+0

围绕它有很多例子,请按照[this](https://stackoverflow.com/questions/26566799/selenium-python-how-to-wait-until-the-page- is-loaded)或[this](https://stackoverflow.com/questions/32717334/wait-until-element-is-not-present)..谢谢 –

回答

1

我花了很多时间,在上帝和来自StackOverflow的许多人的帮助下,我终于解决了它。

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!") 

这将是最好的,在我看来。