๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • Tried. Failed. Logged.
728x90

๐Ÿ‘จ๐Ÿผโ€๐Ÿ’ป๊ฐœ๋ฐœ/์…€๋ ˆ๋‹ˆ์›€38

์…€๋ ˆ๋‹ˆ์›€ - ํฌ๋กฌ๋“œ๋ผ์ด๋ฒ„ ์ž๋™ ์„ค์น˜ ๋ชจ๋“ˆ(webdriver-manager) ๋ชจ๋“ˆ ์„ค์น˜ pip install webdriver-manager  ์‚ฌ์šฉ ์˜ˆ์‹œ # selenium 3from selenium import webdriverfrom webdriver_manager.chrome import ChromeDriverManagerdriver = webdriver.Chrome(ChromeDriverManager().install()) # selenium 4from selenium import webdriverfrom selenium.webdriver.chrome.service import Service as ChromeServicefrom webdriver_manager.chrome import ChromeDriverManagerdriver = webdriver.Chrome(serv.. 2025. 3. 19.
์…€๋ ˆ๋‹ˆ์›€ - ์š”์†Œ ๊ฐ€์šด๋ฐ๋กœ ์Šคํฌ๋กคํ•˜๊ธฐ element = driver.find_element_by_xpath('//*[text()="์‚ฌ์šฉ๊ฐ ์—†์Œ"]')scrollElementIntoMiddle = "var viewPortHeight = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);"\ + "var elementTop = arguments[0].getBoundingClientRect().top;"\ + "window.scrollBy(0, elementTop-(viewPortHeight/2));";\driver.execute.. 2024. 5. 23.
์…€๋ ˆ๋‹ˆ์›€ - URL ์—ฐ๊ฒฐ ์š”์ฒญ ์ฐจ๋‹จ ํ™•์žฅ ๋„๊ตฌ(HTTP Request Blocker) https://chromewebstore.google.com/detail/http-request-blocker/eckpjmeijpoipmldfbckahppeonkoeko?hl=en-US HTTP Request BlockerThis extension blocks HTTP Request based on configurable URL patterns.chromewebstore.google.com   ์ถœ์ฒ˜ : https://stackoverflow.com/questions/27863094/how-to-block-a-url-in-chromes-developer-tools-network-monitor How to block a URL in Chrome's developer tools network monitorI .. 2024. 4. 26.
์…€๋ ˆ๋‹ˆ์›€ - ์ƒˆ ํƒญ ์—ด๊ธฐ & ์ƒˆ ์ฐฝ ์—ด๊ธฐ driver.switch_to.new_window('tab') driver.switch_to.new_window('window') 2023. 10. 5.
์…€๋ ˆ๋‹ˆ์›€ - ํŠน์ • ํƒœ๊ทธ ๋ฒ”์œ„ ํ‘œ์‹œํ•˜๊ธฐ driver.execute_script("arguments[0].style.border='2px solid red';", elem) # ํƒœ๊ทธ ๋ฒ”์œ„ ํ‘œ์‹œ 2023. 7. 29.
์…€๋ ˆ๋‹ˆ์›€ - ์•„์ง ์•ˆ์˜ฌ๋ผ์˜จ ํฌ๋กฌ๋“œ๋ผ์ด๋ธŒ ์ตœ์‹  ๋ฒ„์ „ ์„ค์น˜ํ•˜๊ธฐ https://googlechromelabs.github.io/chrome-for-testing/ Chrome for Testing availability This page lists the latest available cross-platform Chrome for Testing versions and assets per Chrome release channel. Consult our JSON API endpoints if youโ€™re looking to build automated scripts based on Chrome for Testing release data. Last updated @ 20 googlechromelabs.github.io 2023. 7. 28.
์…€๋ ˆ๋‹ˆ์›€ - html ์„œ์‹๋„ ํฌํ•จํ•ด์„œ ํ…์ŠคํŠธ ๋ณต์‚ฌํ•˜๊ธฐ(klembord) example.py import time import klembord from selenium import webdriver from selenium.webdriver.chrome.options import Options from selenium.webdriver.common.keys import Keys from selenium.webdriver.common.action_chains import ActionChains options = Options() options.add_argument("--headless") options.add_argument("--disable-gpu") options.add_argument("--no-sandbox") options.add_argument("--disable.. 2023. 7. 23.
์…€๋ ˆ๋‹ˆ์›€ - ํฌ๋กฌ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œ ๋งŒ์•ฝ ํฌ๋กฌ๋“œ๋ผ์ด๋ธŒ๊ฐ€ ํ˜„์žฌ ์ปดํ“จํ„ฐ์— ์„ค์น˜๋œ ์ตœ์‹  ๋ฒ„์ „(chrome://version์—์„œ ํ™•์ธ ๊ฐ€๋Šฅ)์„ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ๊ธฐ์กด ํฌ๋กฌ์„ ์‚ญ์ œํ•ด์„œ ๋‚ฎ์€ ๋ฒ„์ „์œผ๋กœ ์„ค์น˜ํ•˜๋Š” ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œ๊ฐ€ ํ•„์š”ํ•จ ํฌ๋กฌ ๋ฒ„์ „๋ณ„ ๋‹ค์šด๋กœ๋“œ ๋ชจ์Œ ์‚ฌ์ดํŠธ(uptodown) https://google-chrome.en.uptodown.com/windows/versions Older versions of Google Chrome (Windows) | Uptodown exe 115.0.5790.99 Jul 19, 2023 exe 114.0.5735.199 Jun 28, 2023 zip 114.0.5735.134 Jun 16, 2023 zip 114.0.5735.106 Jun 7, 2023 exe 113.0.5672.127 May 29, 2023.. 2023. 7. 22.
์…€๋ ˆ๋‹ˆ์›€ - xpath ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ํด๋ฆญํ•˜๊ธฐ (javascript error: $x is not defined) ๋ฐฉ๋ฒ• 1. marketplace_button = WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, '//span[contains(text(), "Marketplace")]'))) marketplace_button.click() ๋ฐฉ๋ฒ• 2. marketplace_button = WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, '//span[contains(text(), "Marketplace")]'))) driver.execute_script("arguments[0].click();", marketplace_button) ์ถœ์ฒ˜: https://stackove.. 2023. 6. 11.
์…€๋ ˆ๋‹ˆ์›€ - xpath, ํ…์ŠคํŠธ๊ฐ€ ํฌํ•จ๋œ ์š”์†Œ ์„ ํƒ(contains text) ์›ํ•˜๋Š” ๋ฌธ์ž์—ด์ธ ์š”์†Œ ์ฐพ๊ธฐ ex) ์š”์†Œ์˜ ๋‚ด์šฉ์ด foo์ธ ๊ฒƒ์„ ์ฐพ๊ธฐ //myparent/mychild[text() = 'foo'] ์›ํ•˜๋Š” ๋ฌธ์ž์—ด์ด ํฌํ•จํ•œ(contains) ์š”์†Œ ์ฐพ๊ธฐ ex) ABC๋ผ๋Š” ๋‚ด์šฉ์„ ํฌํ•จํ•œ ์žˆ๋Š” ์š”์†Œ ์ฐพ๊ธฐ //*[contains(text(),'ABC')] ํŒŒ์ด์ฌ ์‚ฌ์šฉ ์˜ˆ์‹œ driver.find_element_by_xpath('//span[contains(text(),"ABC")]') ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ(๋ธŒ๋ผ์šฐ์ € ๊ฐœ๋ฐœ์ž ๋„๊ตฌ) ์‚ฌ์šฉ ์˜ˆ์‹œ $x("//*[contains(text(),'12:00')]") ๊ทธ ๋ฌธ์ž์ธ ๊ฒƒ์„ ์ฐพ๊ธฐ $x('//*[text()="๋„ค์ด๋ฒ„๋กœ ์ด์šฉํ•˜๊ธฐ"]') ์†์„ฑ(class๋‚˜ id) ๊ฐ’์ด ํŠน์ • ๋ฌธ์ž๋กœ ์‹œ์ž‘ํ•˜๋Š” ์š”์†Œ ์ฐพ๊ธฐ $x("//div[starts-with(@class,.. 2023. 5. 7.
์…€๋ ˆ๋‹ˆ์›€ - ํฌ๋กฌ๋“œ๋ผ์ด๋ธŒ ์ž๋™ ์„ค์น˜ ๋ชจ๋“ˆ ์„ค์น˜ pip install webdriver_manager from webdriver_manager.chrome import ChromeDriverManager def exec_chrom(): driver = webdriver.Chrome(service=Service(ChromeDriverManager().install())) return driver 2023. 3. 8.
์…€๋ ˆ๋‹ˆ์›€ - ์ด๋ฏธ์ง€(img) ๋‹ค์šด๋กœ๋“œ (No urllib.urlretrieve) URL ์š”์ฒญ ๋ฐฉ์‹์ธ urllib.urlretrieve์€ src ์ฃผ์†Œ๋กœ ์š”์ฒญ์„ ํ•˜๋Š” ๋ฐฉ์‹์ด๊ธฐ ๋•Œ๋ฌธ์— ์บก์ฑ (์ž๋™๋“ฑ๋ก๋ฐฉ์ง€ ๋ฌธ์ž)์ฒ˜๋Ÿผ ๋งค๋ฒˆ ์š”์ฒญํ•  ๋•Œ๋งˆ๋‹ค ์ด๋ฏธ์ง€๊ฐ€ ๋ฐ”๋€Œ๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์–ด ๋ฌด์šฉ์ง€๋ฌผ์ด ๋œ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ์ด๋ฏธ ๋ธŒ๋ผ์šฐ์ €์— ๋กœ๋“œ๊ฐ€ ๋œ ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค. ๋ฐฉ๋ฒ• 1. screenshot_as_png ์‚ฌ์šฉ (์ถ”์ฒœ) from selenium import webdriver driver = webdriver.Firefox() driver.get('https://www.webpagetest.org/') with open('filename.png', 'wb') as file: file.write(driver.find_element_by_xpath('/html/body/div[1]/div[5]/div[2.. 2023. 2. 28.
728x90