Porting pure webdriver based test to CodeceptJs test adds URL encoding
Maintainer antworten meist innerhalb von 2 Tagen
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Anfängerfreundlichkeit
- 32/100
- Issue-Typ
- Bug
- Klarheit
- Größtenteils klar
- Aktivitätsstatus
- Veraltet
- Tech-Stack
- javascript, node.js
- Bereich
- testing-qa
Rechercherichtung
Beginne mit dem I.amOnPage-Aufruf im bereitgestellten Test und den WebDriver-Hilfseinstellungen in der Konfiguration; vergleiche dessen Navigationsverhalten mit dem Selenium-Beispiel driver.get. Verfolge, wie das URL-Fragment übergeben und codiert wird, und füge anschließend einen Regressionstest mit der gemeldeten URL hinzu. Die Aufgabe ist erledigt, wenn CodeceptJS das vom ursprünglichen webdriver-Test erwartete URL-Verhalten beibehält.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
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
}
}
}```
- Vorherrschende Sprache
- JavaScript
- Sterne
- 4.2k
- Forks
- 756
- Ø Merge
- 2 T. 9 Std.
- Gemergte PRs (30 T.)
- 19
Entwicklungsumgebung
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus codeceptjs/CodeceptJS
-
stale
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
codeceptjs/CodeceptJS#5420 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 2 Tagen
-
stale
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
codeceptjs/CodeceptJS#5358 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 2 Tagen
-
stale
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
codeceptjs/CodeceptJS#4958 · 10 Kommentare · 2 Reaktionen ·
Maintainer antworten meist innerhalb von 2 Tagen
-
stale
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 72/100
codeceptjs/CodeceptJS#4778 · 3 Kommentare ·
Maintainer antworten meist innerhalb von 2 Tagen
-
stale
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 38/100
codeceptjs/CodeceptJS#5618 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 2 Tagen
Alle Issues in codeceptjs/CodeceptJS
Ähnliche Issues
-
bug good first issue
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 86/100
amponce/archive-movie-browser#354 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 74/100
saayam-for-all/webapp#1870 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
Imageomics/OpenCite#66 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 64/100
chr15m/twiiit.com#20 ·
-
documentation
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 88/100
antropos17/Aegis#629 ·
Maintainer antworten meist innerhalb von 4 Tagen