我的情况是需要自动化付款页面。
我需要输入信用卡详细信息,但问题是当我使用sendkeys方法键入文本时,它不会占用完整的卡号,尽管只需要前4个字符。
卡片领域的设计方式是它需要4个数字然后提供自动空间然后接下来的4个数字等等......
我该如何处理这件事?
答案 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键即可。所有线路的元素都是相同的。
注意:上面可能还有其他方法,但我已经尝试过以上并且工作正常,所以建议你这样做。