यहां मैं करने की कोशिश कर रहा हूं और अधिकांश समय मैं सफल हूं: मूल रूप से मैं एक वेबसाइट पर साइन इन कर रहा हूं और फिर स्रोत में एक कक्षा का इंतजार कर रहा हूं , फिर स्रोत कोड को संसाधित करें।सेलेनियम यादृच्छिक टाइमआउट अपवाद बिना किसी संदेश के
अपवाद मैं:
from selenium import webdriver
import contextlib
from selenium.webdriver.common.keys import Keys
import selenium.webdriver.support.ui as ui
from selenium.webdriver.support.wait import WebDriverWait
with contextlib.closing(webdriver.PhantomJS('phantomjs')) as browser:
browser.get('mywebsite')
login_form = browser.find_element_by_id('login-form')
email = browser.find_element_by_name('login')
password = browser.find_element_by_name('password')
email.send_keys(login)
password.send_keys(password)
password.send_keys(Keys.RETURN)
ui.WebDriverWait(browser, 10).until(lambda browser: browser.find_elements_by_class_name("the-class-i-want"))
मैं भी इस की कोशिश की:
wait_count = 0
while wait_count < 6:
print wait_count
ui.WebDriverWait(browser, 10).until(lambda browser: browser.find_elements_by_class_name("the-class-i-want"))
if browser.find_elements_by_class_name("the-class-i-want"):
break
wait_count += 1
मैं एक ही अपवाद
Traceback (most recent call last):
File "foo.py", line 495, in <module>
report(login, password)
File "foo.py", line 430, in report
data = bar(login, password)
File "foo.py", line 113, in
ui.WebDriverWait(browser, 10).until(lambda browser: browser.find_elements_by_class_name("the-class-i-want"))
File "/Library/Python/2.7/site-packages/selenium/webdriver/support/wait.py", line 71, in until
raise TimeoutException(message)
selenium.common.exceptions.TimeoutException: Message: ''
यहाँ कोड है।
मैं इस समय इस कोशिश कर रहा हूँ:
wait_count = 0
while wait_count < 6:
try:
ui.WebDriverWait(browser, 10).until(lambda browser: browser.find_elements_by_class_name("the-class-i-want"))
if browser.find_elements_by_class_name("the-class-i-want"):
break
except:
wait_count += 1
continue
मैं बिंदु जहां यह विफल रहता है, मैं अभी भी परीक्षण कर रहा हूँ करने के लिए नहीं मिला है।
क्षमा करें यह बहुत लंबा है। लेकिन मैं उन यादृच्छिक टाइमआउट्स के लिए एक पाइथोनिक और साफ समाधान ढूंढना चाहता हूं।
एक और जानकारी जो भी मदद कर सकती है: साइन इन प्रक्रिया कभी-कभी बहुत लंबी होती है, लेकिन कई मिनट प्रतीक्षा के साथ भी, यह अपवाद फेंकता है।
क्या आप अपवाद के पूर्ण ट्रेसबैक पोस्ट कर सकते हैं? साथ ही, क्या आप सुनिश्चित हैं कि आपके द्वारा निर्दिष्ट शर्त संतुष्ट है? (अन्यथा, यह '10' सेकंड के बाद टाइमआउट होगा) – jadkik94
पोस्ट संपादित, क्षमा करें – nnaelle
क्या आप किसी अन्य वेबड्राइवर का उपयोग करने का प्रयास कर सकते हैं जहां आप वास्तव में देख सकते हैं कि पृष्ठ पर क्या हो रहा है? शायद यह सिर्फ इतना है कि जिस स्थिति की आप प्रतीक्षा कर रहे हैं वह पूरा नहीं हो रहा है। – jadkik94