2012-02-01 1 views
0

я должен использовать селен для моего project.when я делаю с помощью selenium.i дает на каждый шаг, как этогоКак избавиться от определенных исключений в селене?

time.sleep(6) 

я даю достаточный интервал для загрузки конкретной страницы, но все-таки я обращаясь к ошибке ниже в некоторой точке. В основном я получаю исключения, как

Регулярные Исключения:

Exception: Message: u'Unable to locate element: {"method":"xpath","selector":"//textarea[@style=\\"overflow-y: hidden; height: 50px; width: 300px;\\"]"}' ; Stacktrace: Method WebDriverError threw an error in file:///tmp/tmpBxGp2P/extensions/[email protected]/resource/modules/atoms.js 
    Traceback (most recent call last): 
    File "crawl_optimize.py", line 206, in main 
    word_query = browser.find_element_by_xpath('//textarea[@style="overflow-y: hidden; height: 50px; width: 300px;"]') 
    File "/usr/local/lib/python2.6/dist-packages/selenium/webdriver/remote/webdriver.py", line 210, in find_element_by_xpath 
    return self.find_element(by=By.XPATH, value=xpath) 
    File "/usr/local/lib/python2.6/dist-packages/selenium/webdriver/remote/webdriver.py", line 643, in find_element 
    {'using': by, 'value': value})['value'] 
    File "/usr/local/lib/python2.6/dist-packages/selenium/webdriver/remote/webdriver.py", line 153, in execute 
    self.error_handler.check_response(response) 
    File "/usr/local/lib/python2.6/dist-packages/selenium/webdriver/remote/errorhandler.py", l  ine 147, in check_response 
    raise exception_class(message, screen, stacktrace) 

Я имею также получать такую ​​ошибку Нет осуществления из-за WebDriverWait() До().

NoSuchElementException: Message: u'Unable to locate element: { "method":"xpath","selector":"//textarea[@style=\\"overflow-y: hidden; height: 50px; width: 300px;\\"]"}' ; Stacktrace: Method WebDriverError threw an error in file:///tmp/tmpBxGp2P/extensions/[email protected]/resource/modules/atoms.js 
    keyword : balance transfer ad pos : 2 
    Exception: Message: None 
    Traceback (most recent call last): 
    File "crawl_optimize.py", line 228, in main 
    start_cpc,end_cpc = set_initial_cpc(initial_max_cpc,ad_position) 
    File "crawl_optimize.py", line 95, in set_initial_cpc 
    ep = crawl_position(cost) 
    File "crawl_optimize.py", line 82, in crawl_position 
    WebDriverWait(browser, 10).until(lambda driver : driver.find_element_by_link_text(word.lower())) 
    File "/usr/local/lib/python2.6/dist-packages/selenium/webdriver/support/wait.py", line 55, in until 
    raise TimeoutException() 
    TimeoutException: Message: None 

Что такое способ избавиться от таких исключений?

ответ

0

Может быть 2 вещи.

  1. Ваш элемент не закончил загрузку в пределах выделенных 6 секунд
  2. Ваш локатор имеет неверный формат. Это выглядит подозрительным ...

    {"method": "xpath", "selector": "// textarea [@style = \" overflow-y: hidden; высота: 50 пикселей; width: 300px; \ "]"} '

Можно ли проверить, что локатор возвращает то, что вы ожидаете, используя FireFinder или аналогичный?

Если локатор нормально, вы можете попробовать использовать WebDriverWait & ExpectedCondition для подтверждения завершения загрузки страницы, а не играть в азартные игры, что вы страница всегда будет загружаться в 6s

 Смежные вопросы

  • Нет связанных вопросов^_^