python으로 브라우저 컨트롤시에 selenium를 이용해서 컨트롤하는 경우

드라이버 생성을 특정함수 안에서 하게 되면 함수가 종료될때 브라우저도 같이 종료되는데,

가끔 종료되지 않았으면 할때 아래 방법대로 하면 됩니다.(다른 방법도 있을건데 잘 몰라서..)

 

핵심은 option에 add_experimental_option를 추가하고 "detach"를 True로 활성화 하면됩니다.

 

Edge의 경우(Chrome이나 다른 브라우저는 확인하지 않아서 잘 모름, 뭐 비슷하지 않을까 합니다.)

 

pip install msedge-selenium-tools

 

from msedge.selenium_toos import Edge, EdgeOption

이렇게 하면 from selenium import webdriver를 하지 않아도 됩니다.(당연히 msedgedriver.exe도 받지 않아도 되고)

 

edge_options = EdgeOptions()

edge_options.use_chromium = True

edge_options.add_experimental_option("detach", True)

 

browser = Edge(options=edge_options)

browser.get("http://~")

'기타' 카테고리의 다른 글

VSCode에서 Rust개발하기 - 개발환경설정(Windows 10)  (0) 2021.03.23
앞으로  (0) 2015.03.10
컬러매치  (0) 2013.11.14

WRITTEN BY
CAPAS

,

최근에 다시 Rust를 공부해보려고 VSCode랑 다시 설치하는데 예전에 했던게 기억이 안 나서 몇일을 고생했다.

다른 분들의 설치를 보면 예전에 내가 했던거랑 조금 다르다. 이것저것 많이 설치하는거 같기도 하고,

어째거나 몇일 고생해서 알아낸 부분들을 순서대로 입력해 둔다.

 

1. Visual Studio 사이트에서 vs_BuildTools.exe를 다운받아 설치한다. (mingw도 된다고 하는데 안 해봐서 잘 모름)

   리눅스의 경우 셋팅을 해보지 않아서 잘 모르겠는데, 윈도우즈의 경우 C++의 빌드 환경을 사용하도록 되어 있어

   미리 설치되어있지 않으면 설치하도록한다.

 

2. Rustup-init.exe 파일을 실행해서 설치한다.

   설치가 다되면 cmd 또는 Powershell환경에서 rustup --version, cargo --version를 실행후 정보가 나오는지 확인한다.

 

3. 새로운 Rust용  워크스페이스 폴더를 생성한다

   예) D:\Projects\Rust

 

4. VSCode를 실행하여 Rust용 확장기능을 추가한다.
   여기서 부터 예전과 달라서 많이 고생좀 했다. 사실 맞는지도 잘 모르겠다.
   이글을 작성하면서 다른 블로그를 보니까 C/C++확장기능 없이 실행환경을 꾸미는 것도 가능한가 보다

 

   Rust라고 치면 예전에선 Rust(rls)만 설치해서 사용했던거 같은데 지금은 Rust만나오고 뒤에 (rls)이 붙은거는
   찾아 보기
어렵다.  그냥 Rust(녹슨톱니바퀴,  rust-lang)만 설치하면 추가로 관련 기능을 설치한다고 오른쪽 아래

   알림이 뜬다. 모두 설치한다.

   첫번째 방법

   C/C++ 확장기능을 찾아 설치한다. ( 예전에는 설치하지 않았던거 같은데, 기억이 안난다)

 

   두번째 방법

   code runner를 설치한다.

   예전엔 이걸로 사용한 기억은 있다. 그때 c/c++ 확장기능설치는 안 했던거 같다. 

   여기서 끝 다른 아무것도 할 필요가 없다.

   코드를 작성하고 마우스 오를쪽 버튼으로 맨위 코드 실행을 선택하면 된다.

 

   근데 나는  다른 언어처럼 F5키로 컴파일과 실행을 진행하고 싶다.
   그래서 두번째 방법보다 첫번째 방법으로 진행한다.

 

5. VSCode에서 폴더열기를 해서 위에서 만들어 놓은 폴더를 선택한다.

 

6. 터미널 창을 열고(Ctrl+`) 

   D:\Projects\Rust>cargo new helloworld를 입력하여 helloworld 프로젝트을 생성한다.

   제대로 되었다면 helloworld폴더가 생성되고 그 아래 src등 몇가지 폴더및 파일이 생성된다. 정상이다.

 

7. VSCode에서 src폴더아래 main.rc파일을 열고

   Terminal > Run Task를 선택 cargo -> cargo build helloworld를 선택한다.

   아래 터미널창에서 Build가 이루어 진다.

   다시 Terminal > Run Task를 선택 cargo -> cargo run helloworld를 선택한다.

   아래 터미널에서 hello world가 나오면 정상적으로 실행된 것이다.

 

여기까지는 그냥 몇번이고 실패없이 실행했다. 문제는 다음부터다.
다른 블로그에선 확장기능을 몇가지 더 추가 하고, 하는게 난 뭔소린지 모르겠고 그대로 해도 안되고..짜증이..막..후~

 

8. main.rs 코드 화면에서 F5키를 누르면 컴파일 환경 선택하라고 나온다.
난 윈도우즈니까 C++(Windows)를 선택했다.

뭔가 에러가 나면서 launch.json추가하고 열건지 물어본다. 확인을 선택한다.

아무것도 수정하지 않고 다시 main.rs를 실행하면 ""파일을 찾을 수 없다고 나오면서 launch.json을 열겠냐고 물어본다

여기서부터 무한 반복이다. 온몸이 간질거린다.. 막 그만두고 싶다.

 

코드를 실행시키려고 'F5'키를 누르면 컴파일이 진행되면서 실행파일이 만들어 진다.

그 실행파일 위치는 프로젝트폴더의 target > debug 폴더아래 helloworld.exe(우리가 만든 프로젝트이름)파일로 생성되어 있다. 근데 F5키로 실행파일 찾지 못하는 것이다.

launch.json파일을 열어서  "program":"(~~~)" 이부분을 수정하면 된다.

 

VSCode에는 환경변수를 대신하는 단어들이 몇개 있는데 이거를 이용해서 위 가로 부분을 채우면 된다.

 

대부분 다른 블로그에선 "program": "${workspaceRoot}/target/debug/${workspaceFolderBasename}"이렇게 만 쓰라고 나온다. 난 아무리해도 안된다. 서로 환경이 달라서 그런건지. 

 

"program":"${workspaceRoot}/${command:extension.commandvariable.file.relativeFileDirname1Up}/target/debug/${command:extension.commandvariable.file.relativeFileDirname1Up}.exe"

 

이렇게 입력하면되는데, VSCode확장기능인 'Command Variable'을 설치해야된다.

원래 VSCode환경변수중는 'command:extension.commandvariable.file.relativeFileDirname1Up' 이런게 없다. 'relativeFileDirname'만 있다. 'relativeFileDirname'는 main.rs의 위치를 가리키는데 'helloworld/src' 이다. 이거를

둘로 나눠서 helloworld만 가져와야 하는데, 이 기능을 제공해주는 확장기능이 'Command Variable'이다.

'Command Variable'를 확장기능 설치하는 곳에서 찾아 설치한다.

 

9. main.rs에서 F5를 눌러 실행을 시킨다.. 돌아간다.

   프로그램을 수정하고 다시 F5키를 누른다. 수정 전의 프로그램만 수행된다. 

   미리 컴파일을 해줘야 한다.  위 7번의 첫번째줄을 먼저 실행하고 F5를 누르면된다.

   아래는 내 VSCode Rust launch.json, tasks.json파일이다.

   tasks.json은 컴파일 할때 사용되는 파일이다. 여러 파일을 컴파일 하다보면 cargo build 프로젝트명이 많이 나온다.

   그중에 선택하려면 힘드니까 tasks.json을 만들어 놓고  Terminal > Run Task 에서 맨위 Rust: cargo build만

   선택해 주면 된다. 나중에 launch.json에 컴파일 기능까지 추가 해야 함. 미리 컴파일을 해야되는 불편없이.

 

launch.json

--------------------------------------

{

    // Use IntelliSense to learn about possible attributes.

    // Hover to view descriptions of existing attributes.

    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387

    "version": "0.2.0",

    "configurations": [

        {

            "name": "시작",

            "type": "cppvsdbg",

            "request": "launch",

            "program": "${workspaceRoot}/${command:extension.commandvariable.file.relativeFileDirname1Up}/target/debug/${command:extension.commandvariable.file.relativeFileDirname1Up}.exe",

            "args": [],

            "stopAtEntry": false,

            "cwd": "${workspaceFolder}",

            "environment": [],

            "console": "integratedTerminal",

        }

    ]

}

------------------------------------------------

 

task.json

------------------------------------------------

{

    "version": "2.0.0",

    "tasks": [

        {

            "type": "cargo",

            "subcommand": "build",

            "problemMatcher": [

                "$rustc"

            ],

            "group": "build",

            "label": "Rust: cargo build"

        }

    ]

}

---------------------------------------------

 

몇일을 고생했다. 아~ 걍 하지 말까...

'기타' 카테고리의 다른 글

selenium 사용 중 브라우저 종료 하고 싶지 않을 때  (5) 2021.06.04
앞으로  (0) 2015.03.10
컬러매치  (0) 2013.11.14

WRITTEN BY
CAPAS

,

앞으로

기타 2015. 3. 10. 10:15

빅데이터 - 사물인터넷과 맞물려 앞으로 모든 산업의 기본이 될 거로 예상됨

주파수 전원 공급기술 - 지금은 배터리를 대용량 소형화 시키는 산업이 주를 이루겠지만 얼마 후 미래에는 지금의 휴대전화와 같은 주파수 전원 공급 기술이 기대됨. 그렇게 되면 극 오지에선 초소형 대용량 배터리가 보조 전원 장치 수단으로 사용되며, 일상생활에선 언제 어디서나 전원을 공급 받게 되며, 제품은 극 소형화가 이루어 진다.

3D 모델링 및 3D프린팅 기술 - 3D프린터의 발달로 3D모델링 기술이 추가 적으로 발달함에 따라 같은 기능을 하는 제품의 개인화가 이루어 지며, 아울러 제품의 원래 기능만을 제공하는 모듈러산업이 추가로 자리 잡는 계기가 됨.

다 아는 이야기겠지만 앞으로 대세로 다가올 산업이며 미리 대처하지 않으면 따라가기 힘들게 되는 부분이겠다



WRITTEN BY
CAPAS

,

컬러매치

기타 2013. 11. 14. 16:53

6년전쯤 야후 위젯중에 컬러매치라는 위젯이 있었는데, 그때 몇일간 저장해 뒀던 컬러테이블

1. 9ECCE3, F5C3A0, FFFF4E, E3F8F7
2. C0E0FC, 60A0E0, 0000C0, FCFCFC
3. ABE01E, A3C883, D4D2A1, 937840
4. 645C4F, 410E0C, ADA392, C90B0A
5. E5D772, B15F25, DF9B08, 4F657C
6. DA4157, E4C163, 93AB4B, C28A4D
7. BB5457, CA8763, EBCFC5, D0A889
8. BEA46F, 323F67, 8E7F54, A8CBFF
9. E97A26, 3735c6, 783119, B4B8D9

번호별로 각각에 어울리는 컬러를 추천해 준것임.


WRITTEN BY
CAPAS

,