我正在尝试从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:
有关如何进行的任何想法?
答案 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()