如何使用Python Selenium Webdriver显示值?
使用上述脚本,无法打印“金额”和“数量”值(给出空值) 如果作为简单脚本执行(无unittest,如下所示),则正确显示“金额”值如何使用Python Selenium Webdriver显示值?,python,selenium,Python,Selenium,使用上述脚本,无法打印“金额”和“数量”值(给出空值) 如果作为简单脚本执行(无unittest,如下所示),则正确显示“金额”值 import unittest import re import time from selenium import webdriver #from selenium.webdriver.common.action_chains import ActionChains from selenium.webdriver.support.select import Sel
import unittest
import re
import time
from selenium import webdriver
#from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support.select import Select
#Navigate to Home page
class VerifyMortgageAmount (unittest.TestCase):
def setUp(self):
self.driver = webdriver.Firefox()
self.driver.get("http://ia.ca")
def test_verify_mortgage_amount (self):
driver = self.driver
#Click on Loans in the menu
time.sleep(5)
driver.find_element_by_xpath(".//*[@id='nav-secondaire']/div[1]/ul/li[4]/a/span").click()
#Click on Mortgages
driver.find_element_by_link_text("Mortgages").click()
#Click on Calculate your payments
driver.find_element_by_link_text("Calculate your payments").click()
#Set Purchase Price value to 500,000
driver.find_element_by_xpath(".//*[@id='PrixProprietePlus']").click()
driver.find_element_by_xpath(".//*[@id='PrixProprietePlus']").click()
#Set Down Payment value to 50,000
driver.find_element_by_xpath(".//*[@id='MiseDeFondPlus']").click()
#Move to Amortization
Amortise = Select (driver.find_element_by_id("Amortissement"))
#Change the term to 15 years
Amortise.select_by_value("15")
#Move to Payment frequency
Frequence = Select (driver.find_element_by_id("FrequenceVersement"))
#Change it to Weekly
Frequence.select_by_index(3)
# Clear Interest rate
driver.find_element_by_name("TauxInteret").clear()
# Set Interest rate to 5%
driver.find_element_by_name("TauxInteret").send_keys("5")
#Click on Calculate Button
driver.find_element_by_xpath(".//*[@id='btn_calculer']").click()
#Capture amount
Amount = driver.find_element_by_xpath("//span[@id='paiement-resultats']").text
print (Amount)
num = re.sub(r'\D', "", Amount)
print (num)
def tearDown(self):
self.driver.close()
if __name__ == "__main__":
unittest.main()
由于某些原因,您的“计算”按钮需要单击两次才能工作
import re
import time
from selenium import webdriver
#from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support.select import Select
driver = webdriver.Firefox()
driver.get("http://ia.ca")
time.sleep(5)
driver.find_element_by_xpath(".//*[@id='nav-secondaire']/div[1]/ul/li[4]/a/span").click()
driver.find_element_by_link_text("Mortgages").click()
driver.find_element_by_link_text("Calculate your payments").click()
driver.find_element_by_xpath(".//*[@id='PrixProprietePlus']").click()
driver.find_element_by_xpath(".//*[@id='PrixProprietePlus']").click()
driver.find_element_by_xpath(".//*[@id='MiseDeFondPlus']").click()
Amortise = Select (driver.find_element_by_id("Amortissement"))
Amortise.select_by_value("15")
Frequence = Select (driver.find_element_by_id("FrequenceVersement"))
Frequence.select_by_index(3)
driver.find_element_by_name("TauxInteret").clear()
driver.find_element_by_name("TauxInteret").send_keys("3")
driver.find_element_by_xpath(".//*[@id='btn_calculer']").click()
driver.find_element_by_xpath(".//*[@id='btn_calculer']").click()
Amount = driver.find_element_by_xpath("//span[@id='paiement-resultats']").text
print (Amount)
num = re.sub(r'\D', "", Amount)
print (num)
此外,通过xpath查找所有内容,您也让自己的事情变得有点困难。大多数时候,你只需要像我在这里做的那样,按id或类查找。当然,Selenium需要反复试验。因此,运用你的判断。不确定为什么按钮需要点击两次。可能是一些javascript?当作为脚本(而不是单元测试)执行时,如何通过提供空值来调用函数?你的意思是根本不打印值吗?你知道我正试图帮助你吗?解决问题后,我必须修改代码…感谢你注意到这一点。
driver.find_element_by_class_name('btn-trouver').click()
driver.find_element_by_class_name('btn-trouver').click()