【问题标题】:How to use selenium functions within the same tab ? (on python)如何在同一选项卡中使用硒功能? (在蟒蛇上)
【发布时间】: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 的第二个元素。或者最好找到其他方法来查找视频

标签: python selenium firefox


【解决方案1】:

朋友,这是代码

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
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)
time.sleep(5)
try:
   driver.find_element_by_id("video-title").click()
   print("Video Found")  #Trying to see what's happening
except:
   print("Cant Click")

搜索后,我添加了等待5秒加载页面并点击视频

time.sleep (5)

更多关于Python sleep()的信息。PYTHON SLEEP()

点击视频时,我修改了代码

1-变量clickVid我删除了

2- 我将视频 ID 从“dismissable”更改为“video-title”。可以查看页面源码看视频ID(我点了视频标题)

3-我找到视频ID后立即添加了点击

【讨论】:

  • 有问题可以评论
猜你喜欢
  • 2021-07-24
  • 2016-05-28
  • 2021-06-28
  • 2021-07-07
  • 2023-02-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多