私はPythonとSeleniumを使って、与えられた半径内の人口を調べるプロセスを自動化するプログラムを開発しようとしています。私は、半径と住所を取るウェブサイトを使用することを選択しました。私は半径と住所を入力することができますが、Googleマップで提供されるドロップダウンメニューのオプションをクリックできるようにする必要があります。そのため、住所はGoogleが住所と場所を見つける正しい方法でフォーマットされていますマップ上の半径。Googleマップ入力のドロップダウンメニューオプションを選択できません。
私が問題になっているのは、ドロップダウンメニューがブラウザによって生成され、要素を検査できないということです。最初のドロップダウンメニューオプションをクリックするには、Seleniumを使用してPythonまたはJavascriptで要素に到達する方法がわかりません。ドロップダウンメニューオプションをクリックすると、地図上に半径が生成されます。次に、計算ボタンをクリックして半径内の母集団を見つけることができます。
TLDR:SeleniumのPythonまたはJavascriptでGoogleマップを使用するドロップダウンメニューをクリックするにはどうすればよいですか?ドロップダウンメニューは検査できません。
ウェブサイト:https://www.freemaptools.com/find-population.htm
Pythonコード:
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();