当前位置: 首页 > 知识库问答 >
问题:

不能使用selenium选择按钮来点击它

富凯旋
2023-03-14

我是硒的新手,当我想点击带有下一个html代码的按钮时,我得到了库存:

<div class="mb-8">
 <div class="wrapper">
  <button class="w-full h-14 pt-2 pb-1 px-3 bg-accent text-dark-1 rounded-full md:rounded select-none cursor-pointer md:hover:shadow-big focus:outline-none md:focus:bg-accent-2 md:focus:shadow-small ">
    <div class="font-medium">
    <div class="text-17 md:text-18 md:font-bold leading-18">Activate</div> 
    <div class="text-13 md:text-12 font-normal md:font-medium leading-normal">Mining 4 hours</div>
    </div>
  </button>
 </div>
</div>

这就是我尝试的:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
import time
driver = webdriver.Chrome("chromedriver.exe")
driver.get("https://link")
search = driver.find_element_by_id("email")
search.clear()
search.send_keys("username")
search = driver.find_element_by_id("password")
search.clear()
search.send_keys("password")
search.send_keys(Keys.RETURN)
time.sleep(3)
link= driver.find_element_by_link_text("Miner")
link.click()
time.sleep(3)
link= driver.find_element_by_class_name("w-full h-14 pt-2 pb-1 px-3 bg-accent text-dark-1 rounded-full md:rounded select-none cursor-pointer md:hover:shadow-big focus:outline-none md:focus:bg-accent-2 md:focus:shadow-small ")

得到了这个:

InvalidSelectorException: invalid selector: An invalid or illegal selector was specified
  (Session info: chrome=88.0.4324.182)
link=driver.find_element_by_css_selector("w-full h-14 pt-2 pb-1 px-3 bg-accent text-dark-1 rounded-full md:rounded select-none cursor-pointer md:hover:shadow-big focus:outline-none md:focus:bg-accent-2 md:focus:shadow-small ")

同样的错误。也尝试了这个(因为图像中的信息)

link=driver.find_element_by_css_selector(".w-full.h-14.pt-2.pb-1.px-3.bg-accent.text-dark-1.rounded-full.md\:rounded.select-none.cursor-pointer.md\:hover\:shadow-big.focus\:outline-none.md\:focus\:bg-accent-2.md\:focus\:shadow-small.")

同样的错误。也试试这个:

link= driver.find_element_by_class_name("Activate")

得到这个:

NoSuchElementException: no such element: Unable to locate element: {"method":"css selector","selector":".Activate"}
  (Session info: chrome=88.0.4324.182)

谢谢你的帮助!!!

共有3个答案

姜鸿畴
2023-03-14

如果您仍在努力完成这项任务,我已在另一篇文章中发布了答案。在python中查找selenium Automation的按钮元素,请务必查看。

韦泳
2023-03-14

如果你想通过类找到一个元素,那么只需要使用一个类而不是所有的类。

在您的例子中,“激活”不是一个类。您可以尝试:

link= driver.find_element_by_class_name("w-full");

此外,您可以使用XPath找到此按钮。

姜嘉良
2023-03-14

如果这些都不起作用,则元素位于iframe中。driver.switch_to。frame()将解决此问题。

X路径:

//div[@class='wrapper']/button
//div[.='Activate']/parent::button[1]

css选择器:

button.w-full.h-14.pt-2.pb-1.px-3.bg-accent.text-dark-1.rounded-full.md:rounded.select-none cursor-pointer.md:hover:shadow-big.focus:outline-none.md:focus:bg-accent-2 .md:focus:shadow-small 
 类似资料:
  • 一直试图点击网站上的单选按钮,但无济于事。 一直试图点击单选按钮和标签,但硒一直抛出没有这样的元素错误,我在这个阶段有点沮丧。 在实际网站上可能更容易看到: https://www.theaa.ie/car-insurance/journey/getting-started 它在输入电子邮件后的页面上。试图让一些测试用例运行,但这些单选按钮不想被点击。

  • 问题内容: 我正在尝试从3个按钮的列表中进行选择,但是找不到选择它们的方法。以下是我正在使用的HTML。 我可以使用以下代码找到它: 输出:SRF,COM,MOT 但我想选择ChoiceOne。(单击它)我该怎么做? 问题答案: 使用CSS选择器或XPath 直接按属性选择,然后单击它。 更正(但是OP应该学习如何在文档中查找) 在Python绑定中,它不存在,称为。一个人应该能够查看异常消息并在

  • 此输出:SRF、COM、MOT 但我想选一个。(点击它)我怎么做?

  • 我所要做的就是选择下拉列表 下拉示例 单击我查看HTML示例1 看看示例1和示例2中的名称 单击我查看HTML示例2 您会注意到HTML代码已更改为 我认为这是我问题的一部分。我被卡住了。我也尝试过使用ChroPath 提前谢谢你! 这些评论要求进一步了解HTML代码的细节 这就是我错的地方。我没有提供足够的HTML代码。 上面只有几行是一个“iframe”,不允许我输入代码块。 切换到ifram

  • 我已经搜索了前面的一些问题,并没有能够纠正--我是一个完全的新手,所以请原谅我的无知...尝试使用以下方法选择页面上的第三个“单选”按钮: 结果是: “消息:没有此类元素:找不到元素:{”method“:”XPath“,”Selector“:”//[@id=“Wizard_Tabs”]/div/div[1]/div/ul/li[3]/input“}”

  • 我正在尝试用Selenium Web驱动程序点击一个按钮。 (我觉得是用棱角写的??) URL为https://www.truelocal.com.au/search/accountants/canberra 这是页面底部的绿色按钮,上面有“加载更多结果” 元素页源是...