【发布时间】:2020-08-10 16:47:44
【问题描述】:
我正在尝试创建一个宏来打开我在 Chrome 上的所有在线课程(因为登录很烦人,尤其是如果您每天早上必须登录 8 次)。
顺便说一句,我使用 Python 3.8、Chrome 81.0.4044.122 和最新版本的 Selenium。
直到现在,我点击按钮使用:
driver = webdriver.Chrome()
driver.find_element_by_xpath("PATH_OF_ELEMENT").click()
然后我找到了一个登录按钮,它有一个图像而不是文本。
我试过 XPath、CSS Selector、id、name、文本链接、ActionChains (move_to) 都没有用。
这是 HTML: here click me please.
我要按下的按钮是带有 a 标签的那个。
我花了 30 分钟在谷歌上搜索,发现的只是 6 年前的 Stack Overflow 问题。他们建议我使用 WebDriverWait 或更改框架。他们都没有工作(我可能犯了一个错误)。我是 Selenium 的新手,所以请善待并解释困难的事情。
如何找到图像按钮的正确 XPath 并单击它?
driver.find_element_by_css_selector('.nice-select').click() driver.find_element_by_xpath("/html/body/div1/div[3]/div/div/div/div/div/div2/div1/div/ul/li2") 。点击() driver.find_element_by_xpath('/html/body/div1/div[3]/div/div/div/div/div/div2/div2/div/span').click() driver.find_element_by_xpath('/html/body/div1/div[3]/div/div/div/div/div/div2/div2/div/ul/li[19]') 。点击() driver.find_element_by_xpath('/html/body/div1/div[3]/div/div/div/div/div/div2/div[3]/div/span').click() driver.find_element_by_xpath('/html/body/div1/div[3]/div/div/div/div/div/div2/div[3]/div/ul/li[3]') 。点击() driver.find_element_by_xpath('/html/body/div1/div[3]/div/div/div/div/div/div2/div[4]/div/span').click() driver.find_element_by_xpath('/html/body/div1/div[3]/div/div/div/div/div/div2/div[4]/div/ul/li[3]') 。点击() driver.find_element_by_xpath('/html/body/div1/div[3]/div/div/div/div/div/div2/div[5]/a').click()
【问题讨论】:
-
提供更多信息:示例代码、网站等。我们无法猜测您尝试了什么以及网站的实际实现是什么。
-
这不是重点,我只需要能够找到正确的 Xpath 并单击图像。
-
你在找这个吗? //a/img[@src and @alt='mypicture']
-
我试过 driver.find_element_by_css_selector('//a/img[@src and @alt=mypicture).click() 它说 selenium.common.exceptions.InvalidSelectorException: Message: invalid selector: An invalid或指定了非法选择器(会话信息:chrome=81.0.4044.122)
-
将您的 HTML 放入您的问题中。谢谢。