Skip to content

Commit ab6aba2

Browse files
committed
testing actions
1 parent be16337 commit ab6aba2

File tree

2 files changed

+71
-14
lines changed

2 files changed

+71
-14
lines changed

.github/scripts/take_screenshot.py

Lines changed: 65 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,57 +1,108 @@
1+
import os
2+
import time
13
from selenium import webdriver
24
from selenium.webdriver.chrome.service import Service
35
from selenium.webdriver.common.by import By
46
from selenium.webdriver.support.ui import WebDriverWait
57
from selenium.webdriver.support import expected_conditions as EC
6-
import os
8+
from selenium.webdriver.chrome.options import Options
79

810

911
def setup_driver():
10-
chrome_options = webdriver.ChromeOptions()
11-
chrome_options.add_argument('--headless')
12+
print("Setting up Chrome driver...")
13+
chrome_options = Options()
14+
15+
# Required arguments for running in GitHub Actions
16+
chrome_options.add_argument('--headless=new') # Updated headless argument
1217
chrome_options.add_argument('--no-sandbox')
1318
chrome_options.add_argument('--disable-dev-shm-usage')
19+
chrome_options.add_argument('--disable-gpu')
20+
chrome_options.add_argument('--window-size=1920,1080')
21+
chrome_options.add_argument('--disable-extensions')
1422

15-
service = Service()
16-
driver = webdriver.Chrome(service=service, options=chrome_options)
17-
return driver
23+
# Additional debugging options
24+
chrome_options.add_argument('--verbose')
25+
chrome_options.add_argument('--log-level=0')
26+
27+
print("Chrome options configured, initializing driver...")
28+
29+
try:
30+
service = Service()
31+
driver = webdriver.Chrome(service=service, options=chrome_options)
32+
print("Chrome driver initialized successfully")
33+
return driver
34+
except Exception as e:
35+
print(f"Failed to initialize Chrome driver: {str(e)}")
36+
raise
1837

1938

2039
def take_element_screenshot(driver, url, selector, output_name):
21-
# Create screenshots directory if it doesn't exist
40+
print(f"Attempting to take screenshot of {selector} at {url}")
2241
os.makedirs('screenshots', exist_ok=True)
2342

2443
try:
44+
print("Navigating to page...")
2545
driver.get(url)
2646

47+
# Add a small delay to ensure page loads
48+
time.sleep(5)
49+
print("Page loaded, waiting for element...")
50+
2751
# Wait for element to be present and visible
28-
element = WebDriverWait(driver, 10).until(
52+
element = WebDriverWait(driver, 20).until(
2953
EC.presence_of_element_located((By.CSS_SELECTOR, selector))
3054
)
3155

56+
print("Element found, preparing for screenshot...")
57+
3258
# Ensure element is visible in viewport
3359
driver.execute_script("arguments[0].scrollIntoView();", element)
60+
time.sleep(2) # Give time for any animations to complete
61+
62+
# Take full page screenshot first for debugging
63+
driver.save_screenshot('screenshots/full_page.png')
64+
print("Full page screenshot saved for debugging")
3465

3566
# Take screenshot of specific element
3667
element.screenshot(f'screenshots/{output_name}.png')
37-
print(f"Screenshot saved as screenshots/{output_name}.png")
68+
print(f"Element screenshot saved as screenshots/{output_name}.png")
3869

3970
except Exception as e:
40-
print(f"Error taking screenshot: {str(e)}")
71+
print(f"Error during screenshot process: {str(e)}")
72+
print(f"Current URL: {driver.current_url}")
73+
print(f"Page source length: {len(driver.page_source)}")
74+
raise
4175

4276

4377
def main():
44-
driver = setup_driver()
78+
print("Starting screenshot process...")
79+
driver = None
4580
try:
46-
# Example usage - replace with your target webpage and element selector
81+
driver = setup_driver()
82+
83+
# Test with a simple, reliable page first
84+
take_element_screenshot(
85+
driver=driver,
86+
url='https://example.com', # Using example.com as a test
87+
selector='h1', # Example.com has a simple h1 element
88+
output_name='test-screenshot'
89+
)
90+
91+
# If the above works, try your actual target
4792
take_element_screenshot(
4893
driver=driver,
4994
url='https://github.com',
50-
selector='.header', # Example: capturing GitHub header
95+
selector='.header',
5196
output_name='github-header'
5297
)
98+
99+
except Exception as e:
100+
print(f"Fatal error in main: {str(e)}")
101+
raise
53102
finally:
54-
driver.quit()
103+
if driver:
104+
print("Cleaning up driver...")
105+
driver.quit()
55106

56107

57108
if __name__ == "__main__":

.github/workflows/update_readme.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,11 @@ jobs:
2525
- name: Install Chrome WebDriver
2626
uses: nanasess/setup-chromedriver@v2
2727

28+
- name: Start Chrome Driver
29+
run: |
30+
chromedriver --version
31+
chrome --version
32+
2833
- name: Take Screenshot
2934
env:
3035
COOKIE: ${{ secrets.COOKIE }}
@@ -36,6 +41,7 @@ jobs:
3641
with:
3742
name: webpage-screenshots
3843
path: screenshots/
44+
if-no-files-found: error # This will help us know if screenshots weren't created
3945

4046
- name: Update README
4147
run: |

0 commit comments

Comments
 (0)