Porting pure webdriver based test to CodeceptJs test adds URL encoding
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 4/5
- Tempo estimado
- 3-5 dias
- Facilidade para iniciantes
- 32/100
- Tipo de issue
- Bug
- Clareza
- Razoavelmente clara
- Status de atividade
- Estagnada
- Stack de tecnologia
- javascript, node.js
- Domínio
- testing-qa
Direção de pesquisa
Comece com a chamada I.amOnPage no teste fornecido e com as configurações auxiliares de WebDriver na configuração; compare o comportamento de navegação dela com o exemplo driver.get do Selenium. Rastreie como o fragmento da URL é passado e codificado e, em seguida, adicione um teste de regressão usando a URL relatada. O trabalho estará concluído quando o CodeceptJS preservar o comportamento da URL esperado pelo teste webdriver original.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
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
}
}
}```
- Linguagem predominante
- JavaScript
- Estrelas
- 4.2k
- Forks
- 756
- Merge médio
- 2d 9h
- PRs com merge (30d)
- 16
Guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de codeceptjs/CodeceptJS
-
stale
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
codeceptjs/CodeceptJS#5420 · 1 comentário ·
-
stale
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
codeceptjs/CodeceptJS#5358 · 1 comentário ·
-
stale
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
codeceptjs/CodeceptJS#4958 · 10 comentários · 2 reações ·
-
stale
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 72/100
codeceptjs/CodeceptJS#4778 · 3 comentários ·
-
stale
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 38/100
codeceptjs/CodeceptJS#5618 · 1 comentário ·
Todas as issues de codeceptjs/CodeceptJS
Issues semelhantes
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 65/100
-
Theme loads third-party resources on every page (jsdelivr web font, cdnjs Font Awesome) – GDPR Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
docToolchain/docToolchain#1705 ·
-
Timezone select lists one option per character; duplicate "Failed" reason; shared tracker popover id Abertabug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
nightscout/nocturne#1414 ·
-
bug v2
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
modelcontextprotocol/inspector#2458 · 1 comentário ·
-
Mend: dependency security vulnerability status: needs triage 🕵️♀️
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 70/100
carbon-design-system/ibm-products#9907 ·