프로젝터/웹 드라이버에서 기본 브라우저 창 크기를 설정하는 방법JS
어떤 이유로 직장에서 테스트를 실행하면 브라우저가 최대화되지만 집에서 테스트를 실행하면 약 50% 너비의 브라우저 창만 열립니다.스크롤 다운 등의 차이가 있기 때문에 테스트를 실행하는 모든 머신에서 같은 크기의 브라우저 창을 열었으면 합니다.어떻게 하면 좋을까요?
(다른 언어에 대한 답변은 찾았지만 JavaScript에 적응하지 못했습니다.)
추가 중
browser.executeScript('window.moveTo(0,0);' +
'window.resizeTo(screen.width, screen.height);');
하지 않다window.moveTo
★★★★★★★★★★★★★★★★★」window.resizeTo
Google Chrome 서서서서서서서서니 다다다다다다다다 ) 。
다음을 실행하여 기본 브라우저 크기를 설정할 수 있습니다.
var width = 800;
var height = 600;
browser.driver.manage().window().setSize(width, height);
브라우저 창을 최대화하려면 다음을 수행합니다.
browser.driver.manage().window().maximize();
위치를 설정하려면 다음을 수행합니다.
var x = 150;
var y = 100;
browser.driver.manage().window().setPosition(x, y);
에러가 발생했을 경우:
WebDriverError: 알 수 없는 오류: 원격 디버깅에서 작업이 지원되지 않습니다.
원격 디버깅 사용 시 작업이 지원되지 않음 일부 WebDriver 명령(예: 브라우저 창 크기 조정)을 사용하려면 브라우저에 Chrome 확장을 로드해야 합니다.ChromeDriver는 보통 새로운 Chrome 세션을 시작할 때마다 이 "자동 확장"을 로드합니다.
그러나 ChromeDriver는 새로운 Chrome 세션을 시작하는 대신 기존 Chrome 세션에 연결하도록 지시할 수 있습니다.이는 Capabilities(일명 ChromeOptions) 객체의 'debuggerAddress'를 사용하여 수행됩니다.자동 확장 기능은 시작 시에만 로드되므로 원격 디버깅을 통해 기존 세션을 사용할 때 ChromeDriver가 지원하지 않는 명령어가 있습니다.
원격 디버깅을 사용할 때 작업이 지원되지 않습니다.라는 오류가 표시되면 테스트를 다시 작성하여 새 Chrome 세션을 시작하십시오.이를 수행하려면 Capabilities 개체에서 'debuggerAddress'를 제거합니다.
출처: 원격 디버깅 사용 시 작업이 지원되지 않습니다.
,도할 수 .config.js
크기를 하려면: "창 크기를 설정합니다.
// config.js
specs: [
...
],
capabilities: {
browserName: 'chrome',
chromeOptions: {
args: ['--window-size=800,600'] // THIS!
}
}
// ....
바람직한 방법인 경우:
browser.driver.manage().window().maximize();
(예를 들어 Xvfb에서 Protractor 테스트를 실행하는 경우)는 다음과 같은 방법으로 창을 최대화할 수도 있습니다(protractor.conf.js).
onPrepare: function() {
setTimeout(function() {
browser.driver.executeScript(function() {
return {
width: window.screen.availWidth,
height: window.screen.availHeight
};
}).then(function(result) {
browser.driver.manage().window().setSize(result.width, result.height);
});
});
},
TypeScript 버전:
import {Config, browser} from "protractor";
export let config: Config = {
...
onPrepare: () => {
setTimeout(() => {
browser.driver.executeScript<[number, number]>(() => {
return [
window.screen.availWidth,
window.screen.availHeight
];
}).then((result: [number, number]) => {
browser.driver.manage().window().setSize(result[0], result[1]);
});
});
}
};
아래 코드를 protractor.conf.js 파일에 추가하기만 하면 정상적으로 동작합니다.
onPrepare: function() {
var width = 1600;
var height = 1200;
browser.driver.manage().window().setSize(width, height);
},
set Timeout 및 execute Script는 어떤 목적으로 응답합니까?나는 절삭기 문서에서 베스트 프랙티스를 찾으려고 애쓰고 있다...
제 생각에는 직접 maximize()를 사용하는 것은 좋지 않은 생각이며, 권장되는 방법이 아닙니다. 왜냐하면 테스트가 실행되는 모든 머신에 동일한 크기가 설정되지 않고 반응성이 저하될 수 있기 때문입니다.
셀레늄 4(프로덕터 6)에서는setRect
치환하다setSize
그리고.setPosition
예를들면,
browser.driver.manage().window().setRect({height: 600, width: 800});
Extractor.conf.js 파일에서 다음 구성을 추가합니다.
capabilities: {
'browserName': 'chrome',
chromeOptions: {
args: [
'start-maximized'
]
}
}
config.js 파일을 다음과 같이 변경합니다.
onPrepare: function () {
browser.driver.manage().window().setSize(1280, 1024); // Width, height
},
capabilities: {
browserName: 'chrome',
chromeOptions: {
args: [ "--start-maximized" ] // To start the browser as maximixed
}
},
같이 가고 싶다면async/await
다음과 같이 창을 전체적으로 최대화할 수 있습니다(브라우저가 시작된 후).
// protractor.conf.js
exports.config = {
async onPrepare() {
// start browser in specified window size
await browser.driver
.manage()
.window()
.setSize(1920, 1080);
},
}
아래 코드를 추가합니다.그러면 브라우저 창이 최대화됩니다.
browser.driver.manage().window().maximize();
언급URL : https://stackoverflow.com/questions/20023567/how-to-set-default-browser-window-size-in-protractor-webdriverjs
'programing' 카테고리의 다른 글
AWS API 게이트웨이에 'Access-Control-Allow-Origin' 헤더가 없습니다. (0) | 2023.02.25 |
---|---|
JSX 및 Lodash를 사용하여 요소를 n회 반복하는 방법 (0) | 2023.02.25 |
wordpress post_press 테이블 값을 해석하는 방법 (0) | 2023.02.25 |
Wordpress에서 게시물의 카테고리 제목을 얻으려면 어떻게 해야 합니까? (0) | 2023.02.25 |
useDispatch() 오류: react-redux 컨텍스트 값을 찾을 수 없습니다.컴포넌트가 로 둘러싸여 있는지 확인하십시오. (0) | 2023.02.25 |