如何使用Python Selenium Webdriver显示值?

2024-04-24 09:37:24 发布

您现在位置:Python中文网/ 问答频道 /正文

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()

使用上述脚本,无法打印“Amount”和“num”值(给出空值)

如果作为简单脚本执行(没有unittest,如下所示),则正确显示“Amount”值。在

^{pr2}$

Tags: toimportselfidbyondriverelement
1条回答
网友
1楼 · 发布于 2024-04-24 09:37:24

出于某种原因,你的“计算”按钮需要点击两次才能起作用

driver.find_element_by_class_name('btn-trouver').click()
driver.find_element_by_class_name('btn-trouver').click()

此外,通过xpath查找所有内容,也会使事情变得更困难。大多数时候你只需要像我在这里所做的那样,按id或类查找。当然,硒是非常反复试验的。所以用你的判断。不知道为什么按钮需要点击两次。也许是javascript?在

相关问题 更多 >