Im HCL-Interview sie uns fragte, um zu überspringen Sprungknopf der Werbung in youtube mit Selen. kann mir jemand helfen, das zu automatisieren?Wie man auf Überspringen-Taste von youtube in selen
0
A
Antwort
0
Für Firefox:
from selenium import webdriver
import threading
driver = webdriver.Firefox(executable_path="/root/Downloads/geckodriver")
url="https://www.youtube.com"
driver.get(url)
Suche auf Youtube:
youtube_search = driver.find_element_by_xpath("/html/body/div[2]/div[2]/div[2]/div/div[3]/form/div/input")
youtube_search.send_keys("Latest Videos") #Searches for
#Click Search
clickButton = driver.find_element_by_xpath("/html/body/div[2]/div[2]/div[2]/div/div[3]/form/button")
clickButton.click()
assert "No results found." not in driver.page_source
skipAd = driver.find_element_by_xpath("xpath for next /html/body/div[2]/div[4]/div/div[4]/div[2]/div[2]/div/div[4]/div/div/div[5]/button")
def skipAdFunction():
threading.Timer(3,skipAdFunction).start()
if(skipAd.is_enabled() or skipAd.is_displayed()):
skipAd.click()
skipAdFunction()
driver.close()
0
Ich erstelle ein Verfahren skipADD2 Auswahltaste der Werbung in youtube zu automatisieren, Wenn das Video nicht überspringen hat Taste es present löst eine Ausnahme aus, die im ersten catch-Block abgefangen wird, und // Schritt 1: Warten Sie, bis die Seite geladen wird // Schritt 2: Überprüfen Sie die Sichtbarkeit der Überspringen-Schaltfläche, wenn sie falsch ist, dann wird sie in die c gehen atch Block und anmutig das Programm beenden // Schritt: 3 Wenn es wahr ist, dann klicken Operation durchführen auf Sprung ad
public void skipADD2() throws InterruptedException {
Thread.sleep(2000);
WebElement videoAdUiPreSkipButton = null;
WebElement skipaddbutton = null;
log.info(
"*****************************************Printing Information In The begining ++++++++++++++++++++++++++++");
try {
videoAdUiPreSkipButton = driver.findElement(By.xpath("//div[@class='videoAdUiPreSkipButton']"));
log.info("*************VISIBILITY OF THE ELEMENT IS ************************* "
+ videoAdUiPreSkipButton.isDisplayed());
if (videoAdUiPreSkipButton.isDisplayed() == true) {
log.info("*************Getting Text from the Pre text Box in the begining************************* "
+ videoAdUiPreSkipButton.getText());
WebElement videoAdUiPreSkipButtonFirstDiv = driver
.findElement(By.xpath("//div[@class='videoAdUiPreSkipButton']//div[1]"));
log.info("*************Getting Text from the FIRST DIV in the begining*************************** "
+ videoAdUiPreSkipButtonFirstDiv.getText());
WebElement videoAdUiPreSkipButtonSECONDDiv = driver
Thread.sleep(5000);
log.info("*************VISIBILITY OF THE ELEMENT 'YOU CAN SKIP ADD ' IS AFTER WAITING MORE THAN 5 SECONDS "
+ "************************* " + videoAdUiPreSkipButton.isDisplayed());
skipaddbutton = driver.findElement(By.xpath("//div[@class='videoAdUiSkipContainer html5-stop-propagation']"));
log.info("*************VISIBILITY OF THE ELEMENT FOR SKIP ADD BUTTON" + "************************* "
+ skipaddbutton.isDisplayed());
log.info("*************VISIBILITY OF THE ELEMENT FOR SKP ADD BUTTON " + "************************* "
+ skipaddbutton.getText());
skipaddbutton.click();
Thread.sleep(10000);
} else {
log.info(
"+++++++++++++video Doesn not have Skip Add button and It is Stopped in Second Catch Block +++++++++++++++++++++++++++");
}
} catch (Exception e) {
log.info(
"+++++++++++++video Doesn not have Skip Add button and it is not monextized and I am terminating Program in First excepion Block +++++++++++++++++++++++++++");
**driver.navigate().refresh();**
skipADD2();
//e.printStackTrace();
}
}
I verwendet driver.navigate() .Aktualisierung(); um das Fenster zu aktualisieren, wenn die Anzeige nicht vorhanden ist.
Verwandte Themen
- 1. Wie speichert man Daten auf Selen-Hub?
- 2. Selen, wie man auf diese Art von Link klickt
- 3. Hochladen von Videos auf youtube von iOS app - Youtube API
- 4. Wie listet man die Checkboxen in Selen auf?
- 5. Wie behandelt man dynamische Zeilen in Selen?
- 6. Wie beschleunigt man findElement() in Selen?
- 7. Wie integriert man Sikuli-Skripte in Selen?
- 8. Wie man Videos von Youtube Quellen in Videobild Android
- 9. Wie kann man die laufende Version von Selen, Selen-Server oder Selen-Webdriver programmgesteuert erhalten?
- 10. Youtube auf Android - wie überprüft man, welches Protokoll es verwendet?
- 11. Angular - Wie man ein Youtube Video auf Klick
- 12. Wie behandelt man dynamisches Id in Selen?
- 13. Wie man den Xpath in Behat Selen
- 14. Wie durchläuft man eine Tabelle in Selen?
- 15. Wie man eine Abonnementdatenbank (wie youtube) einrichtet?
- 16. Wie erstellt man ein YouTube-ähnliches Abstimmungsdiagramm auf Android?
- 17. Wie man Youtube Video auf Klicken eines Bildes spielt?
- 18. Wie man sich auf Youtube mit PHP anmeldet?
- 19. Wie ändert man Youtube Kommentare Farbe?
- 20. Wie steuert man Youtube Live-Stream einbetten?
- 21. Selen - wie man den Fokus auf das Overlay setzt
- 22. Android: Wie erstellt man WebView wie YouTube in seiner App
- 23. Selen: Wie man auf alle DIVs mit demselben Klassennamen klickt
- 24. Wie man Youtube-Videos als Playlist einbindet
- 25. Selen: Wie klickt man auf ein HTML-Button-Element?
- 26. wie man Kommentare eines Youtube-Videos abruft
- 27. Wie erhält man Informationen über die Bitrate von YouTube-Videos?
- 28. Wie man Filmtrailer mit Youtube API spezifiziert
- 29. Wie man ein Video von youtube mit youtube v3 api und C#
- 30. Wie installiert man firefoxdriver webdriver für python3 selen auf ubuntu?
Willkommen bei Stack Overflow. Informationen zum Erstellen eines minimalen, vollständigen und überprüfbaren Codebeispiels in Ihrem Post finden Sie unter [diese Richtlinien] (https://stackoverflow.com/help/mcve). – Toby
Der Player von Youtube verwendet HTML5 sowie alle darüber angezeigten Komponenten. Du brichst die Logik in drei Szenarien auf: 1) Eine Schaltfläche zum Vorüberspringen ist vorhanden, du möchtest warten bis der Status geändert wurde und klicke dann darauf, dass das Video erwartungsgemäß abgespielt wird, indem du den Status des Spielers abfragst. 2) Sie können sofort überspringen, also drücken Sie diese Taste und stellen Sie sicher, dass das Video erwartungsgemäß im Status des Players abgespielt wird. 3) Die Anzeige kann nicht übersprungen werden, so dass Sie eine maximale Zeit warten hardcore oder versuchen Sie und holen Sie aus dem Overlay und stellen Sie die Video-Player wie erwartet. –