2016-03-02 40 views
0

我遇到的情况,我需要自动化的付款页面。问题与支付流使用硒的webdriver和Python

我需要输入信用卡的详细信息,但事情是当我使用send_keys方法键入文本,它不采取完整的卡号,但它只需要前三个字符和最后一个。

这是代码:

elem = driver.find_element_by_id("checkout_credit_card_number") 
elem.send_keys(str(sys.argv[5]), Keys.ARROW_DOWN) 
elem = driver.find_element_by_id("checkout_credit_card_name") 
elem.send_keys(str(sys.argv[6])) 
elem = driver.find_element_by_id("checkout_credit_card_month") 
elem.send_keys(str(sys.argv[7])) 
elem = driver.find_element_by_id("checkout_credit_card_year") 
elem.send_keys(str(sys.argv[8])) 
elem = driver.find_element_by_id("checkout_credit_card_verification_value") 
elem.send_keys(str(sys.argv[9]), Keys.ARROW_DOWN) 

,我读了一个解决方案是注入的JavaScript的信用卡号码,基本上是这样一个字符串和论证execute_script。所有必须在Python中。

任何想法如何做到这一点?

回答

0
change in to python it should be the same 

public void runScript(Driver driver, String script) { 
     JavascriptExecutor js = null; 
     if (driver instanceof JavascriptExecutor) { 
      js = (JavascriptExecutor) driver; 
      try { 
       logger.info(script); 
       js.executeScript(script); 
      } catch (Exception e) { 
       logger.info(e + " " + script); 
      } 
     } 
    } 
+1

谢谢。 这是我现在使用的 elem = driver.execute_script(“document.getElementById('checkout_credit_card_number')。value + ='”+ sys.argv [5] +“'”); 奇怪的是之前的方法再次开始工作。 – Christian

+0

开心的听到:) –