def clickFirstVideo(self): print("Clicking first video") idExpression = "video-title" elementExpression = (By.ID, idExpression) WebDriverWait(DriverFactory.getDriver(), 30).until(expected_conditions.visibility_of_element_located(elementExpression)) firstVideo = DriverFactory.getDriver().find_element_by_id(idExpression) firstVideo.click() return VideoPage()
def readVideoName(self): videoPage = VideoPage() try: videoPage.clickSkipAdvertisement() except: print("No Advertisement Found") cssExpression = "h1 .ytd-video-primary-info-renderer" elementExpression = (By.CSS_SELECTOR, cssExpression) WebDriverWait(DriverFactory.getDriver(), 5).until( expected_conditions.visibility_of_all_elements_located( elementExpression)) videoHeader = DriverFactory.getDriver().find_element_by_css_selector( cssExpression) return videoHeader.text
def clickSkipAdvertisement(self): print("Skipping Advertisement") cssExpression = ".videoAdUiExperimentalSkipIcon" skipButton = DriverFactory.getDriver().find_element_by_css_selector( cssExpression) skipButton.click() return self
def goNextVideo(self): print("Clicking next button") cssExpression = ".ytp-next-button" nextButton = DriverFactory.getDriver().find_element_by_css_selector( cssExpression) nextButton.click()
def stopVideo(self): print("Clicking stop button") cssExpression = ".ytp-play-button" playButton = DriverFactory.getDriver().find_element_by_css_selector( cssExpression) playButton.click()
def goPreviousVideo(self): print("Clicking prev button") cssExpression = ".ytp-prev-button" prevButton = DriverFactory.getDriver().find_element_by_css_selector( cssExpression) prevButton.click()
from DriverFactory import DriverFactory from easygui import enterbox from PlaylistPage import PlaylistPage from constants import programName from PlaylistPanel import App driver = DriverFactory.getDriver() playListUrl = enterbox("Please enter youtube playlist url below.", programName) driver.get(playListUrl) playlistPage = PlaylistPage() videoPage = playlistPage.clickFirstVideo() app = App() DriverFactory.getDriver().close()