【问题标题】:How do I select a web element with no ID through Selenium/Python如何通过 Selenium/Python 选择没有 ID 的 Web 元素
【发布时间】:2019-12-20 12:52:28
【问题描述】:

我正在尝试在 minehut.com 网页上选择一个没有 ID 的元素。我发现的所有内容都说要使用 CSS 选择器,但它一直没有工作

我要选择的元素是:

<button _ngcontent-c17 color="Primary" mat-raised-button class="mat-raised-button mat-primary" style="margin-right: 10px;">

代码:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

#Initialize the driver and connect to the website
driver = webdriver.Chrome()
driver.get('https://minehut.com/panel/login')

#Log in
driver.find_element_by_id('mat-input-0').send_keys(<Username>)
driver.find_element_by_id('mat-input-1').send_keys(<Password> + Keys.RETURN)

#Here is the css call
for i in driver.find_elements_by_css_selector("button[color='Primary']"):
    print(i)

driver.close()

最终,代码将与不和谐机器人配对以启动/停止我的世界服务器(以及其他服务器功能) 这部分试图找到“开始”按钮,并可能将其放入变量中

修复了一个语法错误

用 driver.find_elements_by_xpath() 替换 driver.find_elements_by_css_selector() 效果很好。答案解释了如何找到 web 元素的 xpath 谢谢。

【问题讨论】:

    标签: python html selenium css-selectors


    【解决方案1】:

    如果有多个帧,您可能需要切换帧。如果没有,你可以试试driver.find_element_by_xpath(xpath_of_element)。为了获取 xpath,您可以检查元素,然后右键单击元素中突出显示的文本,然后单击 Copy&gt;Copy XPath

    【讨论】:

    • 这很好用,谢谢(奥马尔的评论是第一位的,但这更好地解释了如何做到这一点,谢谢奥马尔)。
    【解决方案2】:

    定位元素的方法有很多种,xpath、css、id、tagNames 这是它在 css 中的样子,css= button[color=‘Primary’] 但是,如果有任何其他具有相同标识符的按钮,您可能会遇到问题。

    【讨论】:

    • 我试过了,它会引发'selenium.common.exceptions.InvalidSelectorException:消息:无效选择器:指定了无效或非法的选择器'
    • 我已将其添加到我的问题中
    【解决方案3】:

    您可以尝试的一个可能的事情是通过 xpath 进行选择,您可以下载一个名为 xpath finder 的 chrome 扩展,然后将鼠标悬停在所需的元素上以获取 xpath,然后尝试通过以下操作与其交互:

    driver.find_element_by_xpath(x_path_of_the_element)
    

    我希望这对你有用。

    【讨论】:

      【解决方案4】:

      您可以使用 css 选择器,更正您的选择器:

      driver.find_elements_by_css_selector('button[color="primary"]')
      

      【讨论】:

      • 哦,谢谢你看到这个,抱歉。这修复了错误,但没有找到元素
      猜你喜欢
      • 2020-04-05
      • 2021-06-22
      • 1970-01-01
      • 2015-06-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-22
      • 2021-06-21
      相关资源
      最近更新 更多