https://www.mastercard.us/en-us/consumers/get-support/convert-currency.htmlでCurrency ConverterをPythonで自動的に実行しようとしています。ここで私はこれまで得たものである:Selenium Pythonで空でない入力フィールドを待つ方法
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import Select
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
link1 = 'https://www.mastercard.us/en-us/consumers/get-support/convert-currency.html'
driver1 = webdriver.PhantomJS()
driver1.get(link1)
script = """ var select = arguments[0];
for(var i = 0; i < select.options.length; i++) {
if(select.options[i].value == arguments[1]) {
select.options[i].selected = true;
}
}
"""
driver1.find_element_by_id('getDate').send_keys('05-Sep-2017')
select = driver1.find_element_by_id('firstID')
driver1.execute_script(script, select, 'USD');
driver1.find_element_by_name('txtTAmt').send_keys('1.00')
driver1.find_element_by_name('txtBankFee').send_keys('0.00')
select = driver1.find_element_by_id('newID')
driver1.execute_script(script, select, 'EUR');
driver1.find_element_by_id('btnSubmit').click()
wait = WebDriverWait(driver1, 100)
element = wait.until(EC.presence_of_element_located((By.XPATH,
'//*[@name="txtCardAmt" and text() != ""]')))
print(element.text)
問題は、フィールド「txtCardAmtは」人口れることは決してありませんし、私はタイムアウト例外を取得していますということです。私の質問は、どのようにサーバーが計算を完了するのを待つことができるのですか?
PS:Select
クラスを使用してオプションを選択する簡単な方法があることはわかっていますが、このウェブサイトでは何らかの理由で機能しません。
、 "txtCardAmt")、 'テキストを既存の') )...これは、既存のテキストが消えるまで待つべきです。ドロップダウンはspan、ulおよびliの組み合わせで作成されます。手動でクリックしてオプションを選択する必要があります – Grasshopper