Porting pure webdriver based test to CodeceptJs test adds URL encoding
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 32/100
- Type d'issue
- Bug
- Clarté
- Plutôt claire
- Activité
- À l'abandon
- Stack technique
- javascript, node.js
- Domaine
- testing-qa
Piste de recherche
Commencez par l’appel I.amOnPage dans le test fourni et par les paramètres d’aide de WebDriver dans la configuration ; comparez son comportement de navigation avec l’exemple driver.get de Selenium. Suivez la manière dont le fragment d’URL est transmis et encodé, puis ajoutez un test de régression utilisant l’URL signalée. Le travail est terminé lorsque CodeceptJS préserve le comportement de l’URL attendu par le test webdriver d’origine.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
What are you trying to achieve?
call this url by selenium via webdriver:
What do you get instead?
but this got sent instead (|, { and } are got encoded):
Provide test source code if related
Scenario('change the company', async ({ I }) => {
I.amOnPage('https://host.docker.internal:8000/payroll/#company/1-250|project|projectViewState/{%22type%22:%22event%22,%22date_range%22:%221%20WEEK%22,%22eventid%22:1,%22eventdb%22:250,%22regularcheckin%22:true}|listViewOpen/2-250');
let url = await I.grabCurrentUrl();
console.log(`Current URL is [${url}]`);
})```
the original test works well
````js
// Generated by Selenium IDE
const { Builder, By, Key, until} = require('selenium-webdriver')
const chrome = require('selenium-webdriver/chrome')
const logging = require('selenium-webdriver/lib/logging')
const assert = require('assert')
const BASEURL = 'https://host.docker.internal:8000/payroll/';
describe('Payroll', function() {
this.timeout(30000)
let driver
let options
beforeEach(async function() {
builder = new Builder();
options = (new chrome.Options()).setAcceptInsecureCerts(true);
prefs = new logging.Preferences();
prefs.setLevel(logging.Type.BROWSER, logging.Level.ALL);
options.setLoggingPrefs(prefs);
driver = await builder.forBrowser('chrome').usingServer('http://localhost:4444/wd/hub').setChromeOptions(options).build()
vars = {}
})
afterEach(async function() {
//await driver.manage().logs().get(logging.Type.BROWSER).then((logs) => console.log(logs))
await driver.takeScreenshot().then((image) => require('fs').writeFileSync('captured_image_3.png', image, 'base64'));
await driver.quit();
})
async function openBrowser(driver, url) {
await driver.get(BASEURL + url);
let username = await driver.wait(until.elementLocated(By.id("login-username-inputEl")));
username.sendKeys("arthur");
let password = await driver.wait(until.elementLocated(By.id("login-password-inputEl")));
password.sendKeys("hwzsyx5h$");
let loginButton = await driver.wait(until.elementLocated(By.id("login-button")));
loginButton.click();
await driver.manage().window().setRect(1924, 768)
}
it('open and save the contract editor', async function() {
await openBrowser(driver, "#company/1-250|project|projectViewState/{%22type%22:%22event%22,%22date_range%22:%221%20WEEK%22,%22eventid%22:1,%22eventdb%22:250,%22regularcheckin%22:true}|listViewOpen/2-250")
await driver.wait(until.elementLocated(By.id("firstname-inputEl")), NaN)
await driver.findElement(By.id("open-editor")).click()
await driver.findElement(By.id("overtimeunitAsMinutes-inputEl")).click()
await driver.findElement(By.id("overtimeunitAsMinutes-inputEl")).sendKeys("30")
await driver.findElement(By.id("save-editor")).click()
})
})
Details
- CodeceptJS version: 3.13
- NodeJS Version:16.9.1
- Operating System: WSL Ubuntu 20
- webdriverio: 6.12.1
- Configuration file: ?
exports.config = {
tests: './tests/acceptance/codeceptjs/*.co.js',
output: './output',
helpers: {
WebDriver: {
url: 'https://localhost',
browser: 'chrome',
host: '127.0.0.1',
port: 4444,
restart: true,
windowSize: '1920x1680',
smartWait: 5000,
desiredCapabilities: {
chromeOptions: {
args: [ /*"--headless",*/ "--disable-gpu", "--no-sandbox", "--ignore-certificate-errors" ]
}
}
}
},
include: {
I: './steps_file.js'
},
bootstrap: null,
mocha: {},
name: 'payroll',
plugins: {
pauseOnFail: {},
retryFailedStep: {
enabled: true
},
tryTo: {
enabled: true
},
screenshotOnFail: {
enabled: true
}
}
}```
- Langage dominant
- JavaScript
- Étoiles
- 4.2k
- Forks
- 756
- Merge moyen
- 2 j 10 h
- PR mergées (30 j)
- 18
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de codeceptjs/CodeceptJS
-
stale
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
codeceptjs/CodeceptJS#5420 · 1 commentaire ·
-
stale
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
codeceptjs/CodeceptJS#5358 · 1 commentaire ·
-
stale
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
codeceptjs/CodeceptJS#4958 · 10 commentaires · 2 réactions ·
-
stale
Difficulté 1/5 Moins d'une heure Accessibilité débutants 72/100
codeceptjs/CodeceptJS#4778 · 3 commentaires ·
-
stale
Difficulté 4/5 3-5 jours Accessibilité débutants 38/100
codeceptjs/CodeceptJS#5618 · 1 commentaire ·
Toutes les issues de codeceptjs/CodeceptJS
Issues similaires
-
Update HugeIcons library Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
antfu-collective/icones#398 ·
-
ECmail.com Ouverte
Difficulté 1/5 Moins d'une heure Accessibilité débutants 90/100
wesbos/burner-email-providers#554 ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
radiantearth/stac-browser#1023 ·
-
HMR stops working Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
-
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
components-web-app/docs#92 ·