2014-11-15 2 views
0

Я пытаюсь выбрать поле Количество комнат, используя Python Selenium от this url.Невозможно выбрать переключатель с селеном в Python

Мой текущий код:

inputBHK = driver.find_element_by_id("No_of_Rooms_newpap") 
input1BHK = driver.find_element_by_id("No_of_Rooms1") 
ActionChains(driver).click(inputBHK).click(input1BHK).perform() 

Помимо обычного импорта и инициализации. Исключение Воспитанный является:

raise exception_class(message, screen, stacktrace) 
selenium.common.exceptions.MoveTargetOutOfBoundsException: Message: u'Offset within  
element cannot be scrolled into view: (0, 0): [object HTMLInputElement]' ; Stacktrace: 

Любые идеи о том, как поступить?

ответ

0

пытается ждать от 2 событий щелчка, реализация этого сайта выглядит сложное и медленной http://docs.seleniumhq.org/docs/04_webdriver_advanced.jsp

редактирование: Хорошо, я нашел что-то, есть некоторые проблемы с хитрыми выпадающим списком, как на этом сайте , они используют скрытую радиокнопку, поэтому вместо щелчка мы нажимаем на метку, которая содержит радиокнопку (она также работает над элементом span, который содержит текст, если вы предпочитаете выбирать по тексту())

from selenium import webdriver 

URL = 'http://kolkata.quikr.com/post-classifieds-ads/?postadcategoryid=971' 

driver = webdriver.Firefox() 
driver.get(URL) 

inputBHK = driver.find_element_by_id("No_of_Rooms_newpap") 
inputBHK.click() 

container = driver.find_element_by_id("No_of_Rooms_l4Attr_RadioBox_div") 
input1BHK = container.find_element_by_xpath(".//label[1]") 
input1BHK.click() 
+0

Пробовал it.Implicit ожидания, то есть.Didnt work.Here ссылка на модифицированный код, который я пробовал: http://pastebin.com/h620GyuV .BTW, я следую за документами здесь для Python: http : //selenium-python.readthedocs.org/en/latest/api.html –

+0

Работает как шарм. Спасибо! –

1

Используйте локатор XPATH, чтобы найти & нажмите требуется радио-кнопка, как показано ниже:

input1BHK = driver.find_element_by_xpath("//*[@id='No_of_Rooms_l4Attr_RadioBox_div']//span[contains(text(),'1 BHK')]") 
input1BHK.click() 

Он будет выбрать 1-ый вариант «1 ППА», вы можете обновить XPATH, чтобы выбрать любой другой необходимый вариант.

+0

Тонны благодарности. Это сработало. Я удивляюсь, почему эта работа сработала, а моя нет. –