【发布时间】:2019-12-19 21:31:14
【问题描述】:
事情是这样的,我试图让我的程序在搜索框中输入 pewdiepie,然后播放第一个视频(这将演变成一个更大的项目,但这是要点它) 。问题是当它向我显示搜索结果时,它在同一个选项卡上,而 selenium 函数似乎无法识别它。 我怎样才能解决这个问题 ?
这是我目前写的代码:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver = webdriver.Firefox()
driver.maximize_window()
url = "https://www.youtube.com"
driver.get(url)
searchBar = driver.find_element_by_name("search_query")
searchBar.send_keys("Pewdiepie")
searchBar.send_keys(Keys.ENTER)
try:
clickVid = driver.find_element_by_id("dismissable")
clickVid.click()
print("Video Found") #Trying to see what's happening
except:
print("Cant Click")
它部分工作,它进入下一页(在同一个标签上) 并说“找到视频”,但它没有点击它
【问题讨论】:
-
不要点击
dissmissable,而是将ID更改为video-title。 IE。clickVid = driver.find_element_by_id("video-title") -
当我在 ID 为
dismissable的 Firefox 对象中的 DevTool 中搜索时,它会显示 23 个具有此 ID 的对象,首先不是视频,而是<div>,它将许多视频分组并单击此<div>什么也没有.您必须单击具有此 ID 的第二个元素。或者最好找到其他方法来查找视频