TWIG::2020.07.14

Today lolol·2020년 7월 14일
0

TWIG

목록 보기
6/17
post-custom-banner

seoul

Today what i've get

통화하면서 잘못 걷다가... 성수에서 한강 근처까지 걸었다..

- Python import module from parent

https://stackoverflow.com/questions/714063/importing-modules-from-parent-folder

pycharm을 쓴다면, 폴더를 지정(mark as ...)하여 사용할 수 있지만 요즘은 다시금 vscode를 쓰다보니 이러한 문제가 발생했다.

(각 스크립트 파일마다 보는 관점도 다르니 언젠간 필요한 내용이었지만..)

from ... import <module_name>

이 방법은 내가 사용하니 통하지 않았다.

import os,sys,inspect
currentdir = os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe())))
parentdir = os.path.dirname(currentdir)
sys.path.insert(0,parentdir) 

import <module_name>

나에겐 이 방법이 효과적이었다.

# same code like above... #

from util import scroller, webdriverManager

이러한 형태로 사용하고 있다.

- Selenium waits

https://selenium-python.readthedocs.io/waits.html

어제에 3가지 방법이 있다고 얘기했었는데

# second
time_out = 3 

 # implicit wait
driver.implicitly_wait(time_out)

# explicit wait
WebDriverWait(driver, time_out).until(lambda d: d.find_element_by_xpath(dest_elem_xpath))

# fluent wait
wait = WebDriverWait(driver, time_out, poll_frequency=1, ignore_exception=[Eception_What_I_Expected])

각각 특징이 있는데, 간단하게 말하자면

  • implicit wait : 그저 기다린다.

  • explicit wait : 내가 목표한 대상이 로드되었는지, 어떠한 상태가 되었는지를 기대하며 기다린다.
    - seleniumrendered JS를 포함한 html을 사용할 수 있기 때문에 렌더링되는 시간이 걸린다.위의 코드의 경우 렌더링된 이후 등장하는 xpath를 (기대하며) 기다리는 것이다.
    - 어떤 목표를 갖고 기다리기 때문에, 기대한 상태가 충족되지 못하면 에러를 반환한다.

  • fluent wait : explicit wait의 단점이 예외상황에 대해서 에러를 반환하는 것이라면, fluent wait는 해당 에러에 대응하며 기다린다고 볼 수 있겠다. (근데 잘안되더라.. 그리고 아직은 필요성을 느끼지 못하고 있다.)

mac air

- 선선한 날씨

요즘 날이 선선해서 아주 좋다.🎁
조금 있으면 생일이다.

시간이 참 빨리 가는구나! 기운내서 더 열심히 해야지 😄 😄 😄

profile
working making doing makes us 🤖
post-custom-banner

0개의 댓글