В течение некоторого времени я пытался собирать данные с youtube, используя селен для автоматического запуска видео.XPath to CSS selector на YouTube
Но в Edge возникают некоторые проблемы, поскольку Microsoft не поддерживает Xpath, , поэтому я понимаю, что он поддерживает селектор CSS.
Так что, если кто-то может помочь мне найти как изменить качество по CSS это будет большим, с помощью веб-веб-драйвер Microsoft не поддерживает Python (писал в своей сети, таким образом я использую Java)
я включил код до сих пор и как я это сделал в chrome с Xpath в python.
Вот код в Java:
import java.io.File;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver.Window;
import org.openqa.selenium.edge.EdgeDriver;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
public class testEdge {
public static void main(String[] args) {
File file = new File("C:\\Program Files (x86)\\Microsoft Web Driver\\MicrosoftWebDriver.exe");
System.setProperty("webdriver.edge.driver", file.getAbsolutePath());
DesiredCapabilities capabilities = DesiredCapabilities.edge();
EdgeDriver driver = new EdgeDriver(capabilities);
Window window = driver.manage().window();
window.maximize();
driver.get("https://www.youtube.com/watch?v=pRpeEdMmmQ0");
WebDriverWait wait = new WebDriverWait(driver,2);
wait.until(ExpectedConditions.elementToBeClickable(By.cssSelector("#movie_player > div.ytp-chrome-bottom > div.ytp-chrome-controls > div.ytp-right-controls > button.ytp-button.ytp-settings-button")));
driver.findElementByCssSelector("#movie_player > div.ytp-chrome-bottom > div.ytp-chrome-controls > div.ytp-right-controls > button.ytp-button.ytp-settings-button").click();;
// wait.until(ExpectedConditions.elementToBeClickable(By.cssSelector("#ytp-main-menu-id > div:nth-child(4) > div.ytp-menuitem-label")));
driver.findElement(By.cssSelector("#ytp-main-menu-id > div:nth-child(4) > div.ytp-menuitem-label")).click();;
driver.findElement(By.cssSelector(":contains('text')")).click();;
// driver.findElement(By.className("ytp-menu-label-secondary")).click();
// #ytp-main-menu-id > div:nth-child(1)
}
}
Запрос для получения качества в XPath в Python:
driver.find_element_by_xpath("//*[contains(text(),'"+video_quality+"')]").click()
Это какая кнопка xpath, о которой вы упомянули? –
Качество, вы открываете панель меню проигрывателя и выбираете качество, качество, которое я хочу выбрать с помощью CSS-селектора – Hay