【问题标题】:How do I select an element within a table using Python Selenium?如何使用 Python Selenium 在表格中选择元素?
【发布时间】:2017-06-02 14:41:45
【问题描述】:

我正在尝试使用 Python Selenium 在网站的输入框中输入自定义值。

html 显示此元素存储在表格中。 html和我的代码如下所示。我已经尝试在具有类“filterLink”和类“值”的元素上发送键。是否可以在表数据元素上发送键? 或者我应该在 html 中的其他位置发送该字段的密钥?

我得到的错误是“消息:未知错误:无法聚焦元素”

非常感谢!!

<div class="ContentSourceTypeData show" group="Provider Type">
    <ul>
       <li>
         <table class="listItem">
           <tbody>
             <tr>
                <td class="label">
                   <a class="filterLink" href="javascript:void(0);" value="bank" name="Banks" address="true">
                      <span class="value">Banks</span>&nbsp;(1831)
                   </a>
                </td> 
              </tr>
          .....

My code...

index_details_elem = browser.find_element_by_class_name('ContentSourceTypeData')

nameTable = index_details_elem.find_elements_by_class_name("listItem")[0] # 
Select first listItem as element
nameDataElem = nameTable.find_element_by_class_name("label")

#nameInputElem = nameDataElem.find_elements_by_class_name("value")  #used the above line instead of this one as the 'span' element seemed to be causing an issue
#print nameElem.location() 
#nameDataElem.click() # removed as I can't click in a table

nameDataElem.send_keys("lookup value")

【问题讨论】:

  • DOM 中没有“input”标签。如何发送sendkeys?
  • 您能否提供更多信息,例如您尝试自动化的网站?因为我在 HTML 代码中看不到输入标签
  • 对不起,我没有添加网站。它只是一个需要数据许可证和付费用户名/密码,所以我不能分享。什么是“DOM”?我没有在其他 webelements 上看到可以使用 sendkeys 的输入标志

标签: python html selenium element sendkeys


【解决方案1】:

我希望您能够将_keys 发送到任何 selenium webelement。我可能会使用 css 选择器(也许页面上还有另一个名为“label”的元素)。尝试做:

webelement = "a[class=\"filterLink\"]"
webelement.send_keys("lookup value")

这将选择所有“a”元素,类值为“filterLink”,然后将键“查找值”发送给它。

【讨论】:

  • 谢谢,我已经检查过了。所有的“filterlink”类都具有相同的结构,并且没有一个有输入部分。也许是因为这是网站上的下拉菜单,而不是免费类型框
  • 可能是这样。执行 send_keys 时是否显示下拉菜单?
猜你喜欢
  • 2022-11-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-20
相关资源
最近更新 更多