无法在Python中选择带有selenium的单选按钮

时间:2014-11-15 16:27:53

标签: python selenium selenium-webdriver

我正在尝试从this网址中选择使用Python Selenium的房间数字段。

我目前的代码是:

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: 

有关如何进行的任何想法?

2 个答案:

答案 0 :(得分:1)

使用XPATH定位器查找&点击下面所需的单选按钮:

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

它将选择第一个选项' 1 BHK',您可以更新XPATH以选择任何其他所需选项。

答案 1 :(得分: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()