我写这个脚本是为了在我的网站上运行。它应该填写一些表格,然后按下付款按钮,然后等待Stripe付款页面,然后填写卡片信息并继续前进。
但问题是,当我的网站结束时,它点击付款按钮,进入Stripe端,自动化停止工作,并抛出这个错误,
错误: ECONNREFUSED连接ECONNREFUSED 127.0.0.1:49383在ClientRequest。(//node_modules/selenium-webdriver/http/index.js:273:15)
(节点:61074) UnhandledPromiseRejectionWarning: Error: ECONNREFUSED在ClientRequest连接127.0.0.1:49383。(//node_modules/selenium-webdriver/http/index.js:273:15)
(节点:61074) UnhandledPromiseRejectionWarning:未处理的承诺拒绝。此错误起源于在异步函数中抛出而不带catch块,或者拒绝使用.catch()处理的承诺。(拒绝id: 2) (节点:61074) DEP0018 DeprecationWarning:未处理的承诺拒绝被取消。在未来,承诺不处理的拒绝将使用非零退出代码终止Node.js进程。
剧本:
const {Builder, Key, By, Capabilities} = require('selenium-webdriver');
(async function makeDonation() {
let driver = await new Builder().forBrowser('chrome').build();
await driver.get('<URL>');
// step 2 - fill out the form and proceed
await driver.findElement(By.css('#support > div > div > div > form > div:nth-child(1) > input')).sendKeys('Test');
await driver.findElement(By.css('#support > div > div > div > form > div:nth-child(2) > input')).sendKeys('test@test.com');
await driver.findElement(By.css('#support > div > div > div > form > div:nth-child(3) > textarea')).sendKeys('Test', Key.TAB);
await driver.sleep(500);
await driver.findElement(By.css('<element>')).click();
// step 3 - agree to pay
let title_1 = await driver.getTitle();
console.log(title_1);
await driver.sleep(1000);
await driver.findElement(By.css('#body > div.ReactModalPortal > div > div > div > div.d-flex.flex-column.justify-content-center.p-5 > form > button')).click();
// step 4 - fill out the payment info on Stripe
await driver.sleep(5000);
const value = await driver.getTitle();
console.log(value);
await driver.findElement(By.css('#email')).sendKeys('email@email.com');
await driver.findElement(By.css('#cardNumber')).sendKeys('4242424242424242');
await driver.findElement(By.css('#cardExpiry')).sendKeys('0125');
await driver.findElement(By.css('#cardCvc')).sendKeys('000');
await driver.findElement(By.css('#billingName')).sendKeys('Name');
await driver.findElement(By.css('#root > div > div > div.App-Payment > div > form > div:nth-child(2) > div:nth-child(4) > button > div.SubmitButton-IconContainer')).click();
// final step - Expect the success page
} catch (e) {
console.error(e);
} finally {
driver.quit();
}
})();注意:从开始到第三步,它只是工作得很好。当它开始执行步骤4时,它就停止工作了。
发布于 2021-03-15 11:04:42
解决了:我已经在无头模式下运行了Chromedriver并发现问题解决了
const {Builder, Key, By, Capabilities} = require('selenium-webdriver');
const chromeCapabilities = Capabilities.chrome();
chromeCapabilities.set('chromeOptions', {args: ['--headless']});
let driver = new Builder().forBrowser('chrome').withCapabilities(chromeCapabilities).build();https://stackoverflow.com/questions/66330318
复制相似问题