使用selenium webdriver支付流程问题

时间:2015-04-15 08:16:11

标签: selenium selenium-webdriver

我的情况是需要自动化付款页面。

我需要输入信用卡详细信息,但问题是当我使用sendkeys方法键入文本时,它不会占用完整的卡号,尽管只需要前4个字符。

卡片领域的设计方式是它需要4个数字然后提供自动空间然后接下来的4个数字等等......

我该如何处理这件事?

5 个答案:

答案 0 :(得分:0)

您可以使用此代码,因为此代码逐个发送字符,我希望如果逐个发送字符,支付网关将接受卡号。

for(int i=0;i<ccNumber.length();i++){
            creditcardtextbox.sendKeys(ccNumber.substring(i).split(""));
        }

答案 1 :(得分:0)

我有同样的问题,使用Python和Selenium,信用卡字段只需4个字符

这是代码


bar  = Bar(<define bar plot>)
line  = Line(<define line plot>)
donut = Donut(<define donut chart>)
bar_line_panel = hplot(bar, line)
final_layout = vplot(bar_line_panel, donut)
output_file('foo.html')
show(final_layout)

答案 2 :(得分:0)

您可以通过以下方式执行此操作: driver.find_element_by_id("checkout_credit_card_number").sendKeys("5123"); driver.find_element_by_id("checkout_credit_card_number").sendKeys("4567"); driver.find_element_by_id("checkout_credit_card_number").sendKeys("8901"); driver.find_element_by_id("checkout_credit_card_number").sendKeys("2346");

答案 3 :(得分:0)

这是我用Python嘲笑的解决方案:

from selenium.webdriver.common.by import By

ccn = '4111111111111111'
ccn_locator = driver.find_element(By.ID, 'numberField')
for num in ccn.replace('', ' ').strip().split():
    ccn_locator.send_keys(num)

答案 4 :(得分:-1)

您可以执行以下操作来处理每4位数之间的空格:

    driver.findElement(By.id("elementid")).sendKeys("1");
    driver.findElement(By.id("elementid")).sendKeys("2");
    driver.findElement(By.id("elementid")).sendKeys("3");
    driver.findElement(By.id("elementid")).sendKeys("5");
    driver.findElement(By.id("elementid")).sendKeys(Keys.SPACE);
    driver.findElement(By.id("elementid")).sendKeys("5");
    driver.findElement(By.id("elementid")).sendKeys("1");
    driver.findElement(By.id("elementid")).sendKeys("2");
    driver.findElement(By.id("elementid")).sendKeys("3");
    driver.findElement(By.id("elementid")).sendKeys(Keys.SPACE);

以上是示例代码,请替换您的实际元素ID和数字。另外我只提供8位数的样本,你可以为16位数做同样的事。只需在每4个数字后调用该SPACE键即可。所有线路的元素都是相同的。

注意:上面可能还有其他方法,但我已经尝试过以上并且工作正常,所以建议你这样做。