Я пытаюсь обнаружить кнопку пропуска добавить на трубке с селеном (питон) - PullRequest
0 голосов
/ 14 декабря 2018

Я использую холостой ход и селен.это мой код:

from selenium import webdriver
import time
from selenium.webdriver.common.keys import Keys
from selenium.common.exceptions import NoSuchElementException

options = webdriver.ChromeOptions()
options.add_argument('--ignore-certificate-errors')

options.binary_location = "/usr/bin/chromium"
driver = webdriver.Chrome()
driver.get('https://www.youtube.com/')


def check_exist_by_class():
    try:
        driver.find_element_by_class_name("ytp-ad-skip-button ytp-button")
        #time.sleep(1)
        return 0
    except NoSuchElementException:
        #time.sleep(1)
        return 1

while True:     
    print(check_exist_by_class())
    time.sleep(0.5)

Я получаю только 1, даже если кнопка пропуска добавления видна.попытался использовать путь x, но путь x для кнопки изменяется в зависимости от размера окна.

Update- Путь X не изменяется со стороны окна.своего рода случайный.Любая идея, как нажать кнопку пропустить добавить с селеном?

X путей нескольких кнопок рекламы:

    ***//*[@id="skip-button:3f"]/span/button
    //*[@id="skip-button:2v"]/span/button
    //*[@id="skip-button:2v"]/span/button
    //*[@id="skip-button:a"]/span/button
    //*[@id="skip-button:a"]/span/button
    //*[@id="skip-button:a"]/span/button
    //*[@id="skip-button:2b"]/span/button***

1 Ответ

0 голосов
/ 14 декабря 2018

Я знаю, что это может быть не то, о чем вы просили, но в качестве альтернативы вы можете просто получить блокировщик рекламы для Youtube и загрузить это расширение в Selenium:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

path_to_extension = r'C:\Users\YOUR_USER_NAME\Desktop\1.9.0_0'

chrome_options = Options()
chrome_options.add_argument('load-extension=' + path_to_extension)


driver = webdriver.Chrome(chrome_options=chrome_options)
driver.create_options()
driver.get("http://www.google.com")
...