Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Python Selenium Webdriver显示值?_Python_Selenium - Fatal编程技术网

如何使用Python Selenium Webdriver显示值?

如何使用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

使用上述脚本,无法打印“金额”和“数量”值(给出空值)

如果作为简单脚本执行(无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 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()