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

Python:为什么driver.find_element_by_class_name没有给出这样的元素:找不到元素

仲孙思源
2023-03-14

目前,我正在与Selenium合作,尝试使用Chrome中的“Inspect”正确识别元素。在某些情况下,我单击的某些按钮仅由类定义,但使用“”驱动html" target="_blank">程序无法找到某些类。find_element_by_class_name''。

下面是我从Chrome上用Inspect获得的代码的和平:

  <td class="x-toolbar-cell" id="ext-gen1328" role="menuitem">
  <table id="ImportMenuSmartExpReport" cellspacing="0" class="x-btn grayBtn x-btn-text-icon" role="presentation" style="width: auto;">
   <tbody class="x-btn-small x-btn-icon-small-left">
    <tr>
     <td class="x-btn-tl"><i>&nbsp;</i></td>
     <td class="x-btn-tc"></td>
     <td class="x-btn-tr"><i>&nbsp;</i></td>
    </tr>
    <tr>
     <td class="x-btn-ml"><i>&nbsp;</i></td>
     <td class="x-btn-mc"><em class="" unselectable="on"><button type="button" id="ext-gen1329" class=" x-btn-text menu_import2">Import Expenses</button></em></td>
     <td class="x-btn-mr"><i>&nbsp;</i></td>
    </tr>
    <tr>
     <td class="x-btn-bl"><i>&nbsp;</i></td>
     <td class="x-btn-bc"></td>
     <td class="x-btn-br"><i>&nbsp;</i></td>
    </tr>
   </tbody>
  </table>
  1. 我需要单击“导入费用”按钮,该按钮是“x-btn文本menu_import2”类的一部分。我不能在这里使用XPATH或ID,因为它是不同提交表单的动态值,它具有不同的值。所以我尝试使用类:“”driver.find_element_by_class_name(“x-btn-文本menu_import2”)“”但是,它给了我一个错误:

回溯(最近调用最后):文件”

    < li >使用' ' ' find_element_by_class ' ' '查找我需要的类有什么问题?为什么它对一个类有效,但对另一个类无效? < li >这是否与' ' ' x-btn-text menu_import2 ' ' '包含在其他类中有关?如果是,如何找到包装在其他类中的类? < li >在这种情况下,任何其他查找对象的方法,如使用标题为“导入费用”的按钮文本

共有1个答案

轩辕佑运
2023-03-14
driver.find_element_by_css_selector("button.x-btn-text.menu_import2")

多个类名需要像这样处理。class_name只处理单个类标识符。

要通过文本查找,您可以。

 driver.find_element_by_xpath("//button[.='Import Expenses']")
 类似资料: