2013-06-27 3 views
1

У меня есть текстовое поле на веб-странице, на котором я хочу передать данные, но проблема в том, что мой скрипт python-selenium не может найти его при его запуске и достигает этой страницы , Странная часть - это когда я пытаюсь найти это текстовое поле вручную, я могу сделать это без каких-либо проблем. Я использую CSSSelector для поиска этого поля.Не удается найти текстовое поле при запуске скрипта python selenium

Стек след:

Traceback (most recent call last): 
    File "C:/SWInstallation/TestCases/TestCases\Program.py", line 23, in test_UC_QS_FR_01_1_QuikShip_Support 
bhp.enterAccDetails("0004341080", "00200") 
File "C:\SWInstallation\HC-Branch\src\HomePage.py", line 24, in enterAccDetails 
accInputField = self.driver.find_element_by_css_selector("#fields input[name='ACCOUNT_NUMBER']") 
File "C:\Python27\lib\selenium\webdriver\remote\webdriver.py", line 366, in find_element_by_css_selector 
return self.find_element(by=By.CSS_SELECTOR, value=css_selector) 
File "C:\Python27\lib\selenium\webdriver\remote\webdriver.py", line 680, in find_element 
{'using': by, 'value': value})['value'] 
File "C:\Python27\lib\selenium\webdriver\remote\webdriver.py", line 165, in execute 
self.error_handler.check_response(response) 
File "C:\Python27\lib\selenium\webdriver\remote\errorhandler.py", line 158, in check_response 
raise exception_class(message, screen, stacktrace) 
NoSuchElementException: Message: u"Unable to find element with css selector == #fields input[name='ACCOUNT_NUMBER']" 
+1

Не могли бы вы поделиться HTML страницы и код, который вы используете, чтобы найти элемент? Обычно нужно учитывать, что, возможно, эта страница еще не загружена полностью загруженной, поэтому элемент не был найден. Добавление соответствующего ожидания может решить проблему. – PocketDews

+0

@PocketDews: Извините, но я не могу разделить HTML-страницу из-за ограничений в моей компании. Однако я могу поделиться своим кодом, который я использую, чтобы найти элемент. –

+0

Вот оно: Защиту enterAccDetails (самоповреждения, acctNumber, brNumber): accInputField = self.driver.find_element_by_css_selector ("# поля ввода [имя = 'ACCOUNT_NUMBER']") accInputField.send_keys (acctNumber) brInputField = само .driver.find_element_by_css_selector ("# полей ввода [имя = 'ДП']") brInputField.send_keys (brNumber) nextButton = self.driver.find_element_by_css_selector ("# полей .htmlbutton") nextButton.click() –

ответ

0

Вы пробовали что-то вроде этого:

e = self.driver.find_element_by_id("fields") 
inputs = e.find_elements_by_css_selector("input[name='ACCOUNT_NUMBER']") 
+0

Эй, спасибо, но я уже пробовал ваше предложение. Не работал для меня .. –

+0

@Praveen Не могли бы вы дать мне образец, похожий на ваш код HTML; Я знаю, что вы не можете сбрасывать информацию о кодах подробно, просто общую структуру, которую я могу угадать, как получить доступ к элементу. –

+0

У вас может быть любая веб-страница с несколькими текстовыми полями, которые я очень легко смог найти. Что-то странно в этом конкретном текстовом поле –