【发布时间】:2021-03-31 22:18:31
【问题描述】:
目前我正在使用 Selenium 尝试使用 Chrome 中的“检查”正确识别元素。 在某些情况下,我的某些按钮仅按类定义,但是使用''' driver.find_element_by_class_name ''' 无法找到某些类。
这是我使用 Inspect from Chrome 检索到的代码:
<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> </i></td>
<td class="x-btn-tc"></td>
<td class="x-btn-tr"><i> </i></td>
</tr>
<tr>
<td class="x-btn-ml"><i> </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> </i></td>
</tr>
<tr>
<td class="x-btn-bl"><i> </i></td>
<td class="x-btn-bc"></td>
<td class="x-btn-br"><i> </i></td>
</tr>
</tbody>
</table>
- 我需要单击“x-btn-text menu_import2”类的“导入费用”按钮。我不能在这里使用 XPATH 或 ID,因为它是不同提交表单的动态值,它具有不同的值。 所以我尝试使用类:''' driver.find_element_by_class_name(" x-btn-text menu_import2") ''' 但是,它给了我一个错误:
Traceback(最近一次通话最后一次):
文件“
- 同时我可以找到'x-toolbar-cell' class :'''driver.find_element_by_class_name("x-toolbar-cell")''' 没有任何问题。
- 用 '''find_element_by_class''' 查找我需要的类有什么问题?为什么它适用于一个班级,但不适用于另一个班级?
- 是否与 '''x-btn-text menu_import2 ''' 包含在其他类中的事实有某种关系?如果是这样,如何查找包装到其他类的类?
- 在这种情况下查找对象的任何其他方式,例如使用按钮文本标题“导入费用”
【问题讨论】:
-
您所指的实际上是多个类名。您可以使用 css 选择器或使用两个类名之一来引用它。
标签: python-3.x selenium selenium-webdriver selenium-chromedriver