Python+;Selenium--找不到图像元素(不能单击图像)

Python+;Selenium--找不到图像元素(不能单击图像),python,selenium,Python,Selenium,我正试图创建一个宏来打开我在Chrome上的所有在线课程(因为登录很烦人,尤其是如果你每天早上都要做8次的话) 顺便说一句,我使用Python 3.8、Chrome 81.0.4044.122和最新版本的Selenium 到目前为止,我单击按钮时使用的是: driver=webdriver.Chrome() 驱动程序。通过xpath(“元素的路径”)查找元素。单击() 然后我找到一个登录按钮,它有一个图像而不是文本。 我尝试了XPath、CSS选择器、id、名称、文本链接、ActionCha

我正试图创建一个宏来打开我在Chrome上的所有在线课程(因为登录很烦人,尤其是如果你每天早上都要做8次的话)

顺便说一句,我使用Python 3.8、Chrome 81.0.4044.122和最新版本的Selenium

到目前为止,我单击按钮时使用的是:

driver=webdriver.Chrome()
驱动程序。通过xpath(“元素的路径”)查找元素。单击()
然后我找到一个登录按钮,它有一个图像而不是文本。 我尝试了XPath、CSS选择器、id、名称、文本链接、ActionChains(move_to)都不起作用

以下是HTML:

我试着按下的按钮是带标签a的

我花了30分钟在谷歌上搜索,结果只找到了6年前的堆栈溢出问题。他们建议我使用WebDriverWait或更改框架。没有一个有效(我可能犯了一个错误)。我是硒的新手,所以请友好地解释一些困难的东西

如何找到图像按钮的正确XPath并单击它

驱动程序。通过_css_选择器('.nice select')查找_元素。单击() 驱动程序。通过xpath(“/html/body/div/div[3]/div/div/div/div/div/div/div/div/ul/li”)查找元素。单击() 驱动程序。通过xpath('/html/body/div/div/div[3]/div/div/div/div/div/div/div/div/span')查找元素。单击() 驱动程序。通过xpath('/html/body/div/div/div[3]/div/div/div/div/div/div/div/ul/li[19]')查找元素。单击() 驱动程序。通过xpath('/html/body/div/div[3]/div/div/div/div/div/div/div/div[3]/div/span')查找元素。单击() 驱动程序。通过xpath('/html/body/div/div/div[3]/div/div/div/div/div/div/div[3]/div/ul/li[3]')查找元素。单击() 驱动程序。通过xpath('/html/body/div/div[3]/div/div/div/div/div/div/div/div[4]/div/span')查找元素。单击() 通过xpath('/html/body/div/div[3]/div/div/div/div/div/div/div/div[4]/div/ul/li[3]')查找元素。单击()
驱动程序。通过xpath('/html/body/div/div[3]/div/div/div/div/div/div/div/div[5]/a')查找元素。单击()

尝试以下CSS选择器:

.my_menu>a
代码应该如下所示:

driver.find_element_by_css_selector(".my_menu>a").click()
另外,尝试使用显式等待来定位元素:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By


WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, ".my_menu>a"))).click()
我已使用以下代码块进行了测试(结果将显示为带有2个选项的弹出窗口):


我希望它能帮助你

提供更多信息:示例代码、网站等。。我们无法猜测您尝试了什么,以及网站的实际实现是什么。这不是重点,我只需要能够找到正确的Xpath并单击图像。您在找这个吗//a/img[@src和@alt='mypicture']我尝试了驱动程序。通过_css_选择器('//a/img[@src和@alt=mypicture)查找_元素。单击()它说selenium.common.exceptions.InvalidSelectorException:消息:无效选择器:指定了无效或非法的选择器(会话信息:chrome=81.0.4044.122)把你的HTML放到你的问题中。Thank.selenium.common.exceptions.NoSuchElementException:Message:没有这样的元素:找不到元素:{“方法”:“css选择器”,“选择器”:.my_menu.active>a“}(会话信息:chrome=81.0.4044.122)@Jooney,在本例中共享您的URL。谢谢。@Jooney,查看我的更新答案。我有测试仪,它可以正常工作。谢谢。超时异常错误
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
import time


driver = webdriver.Chrome()
driver.get("https://oc31.ebssw.kr/onlineClass/search/onlineClassSearchView.do?schulCcode=00898&schCssTyp=online_mid")
WebDriverWait(driver, 20).until(EC.element_to_be_clickable(
    (By.CSS_SELECTOR, ".my_menu>a"))).click()
time.sleep(5)