无法为谷歌地图输入选择下拉菜单选项
Unable to select drop down menu option for google maps input?
我正在尝试使用Python和Selenium开发一个程序,以自动查找给定半径内的人口的过程。我选择使用一个网站,它将使用半径和地址。我能够输入半径和地址,但是,我需要能够点击下拉菜单中的选项,这是由谷歌地图提供支持的,所以地址以正确的方式格式化,以便谷歌找到地址并将半径放在地图上。
我遇到的问题是,下拉菜单是由浏览器生成的,我无法检查元素。我不确定如何使用Selenium使用Python或Javascript访问元素,以便单击第一个下拉菜单选项。一旦下拉菜单选项被点击,半径将在地图上生成,然后我将能够继续点击计算按钮,以找到半径内的人口。
TLDR:我怎么能点击下拉菜单由谷歌地图与Python或Javascript在硒?无法检查下拉菜单。
网站:https://www.freemaptools.com/find-population.htmPython代码:
def putInputs(driver,address,radius):
print "Entering inputs:"
radius_input = "document.getElementById('radiusinputmi').value = " + radius
driver.execute_script(radius_input)
driver.find_element_by_id("radiusinputmi").send_keys(radius)
driver.find_element_by_id("tb_searchlocation").send_keys(address)
# i need to click on the drop down menu so the radius shows up!
更新:我发现下拉菜单显示在HTML页面的底部。然而,我仍然不确定如何选择它。我用下面的Javascript代码更接近于选择所需的元素。
Javascript:// address of location to find
var address = "Indiana University Blooington";
// get input text box
var location_input = document.getElementById("tb_searchlocation");
// set input text box to the address given
location_input.value = address;
// get the drop down menu with the available options given input location
var x = document.getElementsByClassName("pac-container pac-logo")[1];
// make the google maps options drop down visible
x.setAttribute("style","width: 212px; position: absolute; left: 2px; top: 901px;");
// get the first option from the google maps drop down menu
var items = x.getElementsByClassName("pac-item");
// HOW CAN I SELECT THE FIRST DROP DOWN MENU??
// tried:
// items[0].focus();
// items[0].select();
// items[0].click();
这里我将给你一段从下拉菜单中选择第一个值的代码。
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.common.exceptions import NoSuchElementException
import time
driver = webdriver.Chrome()
driver.get("https://www.freemaptools.com/find-population.htm")
#driver.find_element_by_id("radiusinputmi").send_keys(radius)
ele = driver.find_element_by_id("tb_searchlocation")
ele.send_keys("Indiana University Blooington")
time.sleep(10)
ele.send_keys(Keys.DOWN)
ele.send_keys(Keys.RETURN)
time.sleep(10)
driver.quit()
相关文章:
- 从选择下拉菜单中获取数据
- 在angularjs UI网格列中选择下拉菜单不适用于外部editcellTemplate
- JS在选择下拉菜单打开时创建延迟
- 选择下拉菜单:实现非精确搜索,每个单词都将被不可重复地搜索
- 在javascript中动态添加一个选择下拉菜单
- html表单上的许多选择(下拉菜单),如何只获取更改的选择的值
- 未选择下拉菜单时更改css
- 存储值后,重复重新选择选择下拉菜单的第一个选项
- 用于关闭和打开的Jquery事件选择下拉菜单,而不是在更改时
- 是否可以在HTML选择下拉菜单的每个选项上附加一个qtip2工具提示
- 如何使用选择下拉菜单更改元素
- 圆角<选择>下拉菜单
- 在选择下拉菜单时创建文本字段
- HTML选择下拉菜单,最大高度为100%,大小自动
- <选择>下拉菜单以定位JavaScript打开的文件
- 将数据加载到动态填充的分部视图中的选择下拉菜单
- 表排序器从选择下拉菜单和自定义时间过滤器中选择多个选项
- angularjs-编辑项目时,在选择下拉菜单中设置所选值
- 输入-选择下拉菜单在firefox中不起作用
- AngularJS-为什么选择下拉菜单;零钱上没有$event