1
0
Fork 0
mirror of https://github.com/Eggbertx/gochan.git synced 2025-08-24 17:06:24 -07:00
gochan/devtools/selenium-testing/util/qr.py
2022-09-27 10:42:11 -07:00

44 lines
1.4 KiB
Python

from selenium.webdriver.chrome.webdriver import WebDriver
from selenium.webdriver.edge.webdriver import WebDriver
from selenium.webdriver.firefox.webdriver import WebDriver
from selenium.webdriver.common.by import By
def qrIsVisible(driver: WebDriver):
try:
return driver.find_element(by=By.CSS_SELECTOR, value="div#qr-box").is_displayed()
except:
return False
def enableQR(driver: WebDriver):
topbar = driver.find_element(by=By.ID, value="topbar")
topbar.click()
topbar.find_element(by=By.CSS_SELECTOR, value="a#settings").click()
useqr = driver.find_element(by=By.CSS_SELECTOR, value="input#useqr")
if not useqr.is_selected():
useqr.click()
driver.find_element(by=By.CSS_SELECTOR, value="a.lightbox-x").click()
def disableQR(driver: WebDriver):
topbar = driver.find_element(by=By.ID, value="topbar")
topbar.click()
topbar.find_element(by=By.CSS_SELECTOR, value="a#settings").click()
useqr = driver.find_element(by=By.CSS_SELECTOR, value="input#useqr")
if useqr.is_selected():
useqr.click()
driver.find_element(by=By.CSS_SELECTOR, value="a#lightbox-x").click()
def openQR(driver: WebDriver):
enableQR(driver)
if qrIsVisible(driver):
return
body = driver.find_element(by=By.CSS_SELECTOR, value="body")
body.click()
body.send_keys("q")
def closeQR(driver: WebDriver):
if not qrIsVisible(driver):
return
closeLink = driver.find_element(by=By.LINK_TEXT, value="X")
driver.execute_script("arguments[0].click();", closeLink)