python - 在页面上定位元素
问题描述
我正在尝试在页面上找到一个元素并且遇到了麻烦。不确定框架/iframe 是否是问题所在。我已经尝试过 xpath 和其他定位条件,但我不断收到 No such element 消息。这是网页(http://www.ghin.com/lookup.aspx)
正如我所说,我尝试使用 xpath、css_name 和其他标准进行定位。这是 HTML 的相关部分(必须删除前导/尾随 <> 字符才能使其可见(不知道为什么)
<td class="ClubGridHandicapIndex" style="width: 118px;" valign="middle" align="center">13.8</td>
我希望能够抓取该元素中的值(在所示示例中为 13.8)
这是我为这个元素获得的 xpath(使用 firefox):
/html/body/form/div[3]/div/div[1]/div[2]/div[3]/div/div[2]/table/tbody/tr[1]/td[2]
这是我得到的 CSS 选择器:.ClubGridSelectedRow > td:nth-child(2)
这是我尝试过的代码(旧的尝试已被注释掉):
br.switch_to.frame(br.find_element_by_tag_name("iframe"))
br.find_element_by_xpath('//*[@id="ctl00_bodyMP_grdClubs"]/tbody/tr[1]/td[2]')
br.find_element_by_class("/html/body/form/div[3]/div/div[1]/div[2]/div[3]/div/div[2]/table/tbody/tr[1]/td[2]")
handicap_element = br.find_element_by_css_selector("#ctl00_bodyMP_grdClubs > tbody > tr.ClubGridSelectedRow > td.ClubGridHandicapIndex")
handicap_detail = br.find_element_by_xpath("/html/body/form/div[3]/div/div[1]/d1iv[2]/div[3]/div/div[2]/table/tbody/tr[1]/td[2]")
handicap_detail = br.find_element_by_xpath("//td[@class='ClubGridHandicapIndex']")
handicap_detail = br.find_element_by_css_selector("#ctl00_bodyMP_grdClubs > tbody > tr.ClubGridSelectedRow > td.ClubGridHandicapIndex")
任何和所有的想法都值得赞赏
我应该能够轻松找到元素。我在另一个项目上使用了很多硒,并取得了巨大的成功。然而,这个网站上的 HTML 有一些我不熟悉的东西。
提前感谢您的帮助。
解决方案
以下应该工作
content = driver.find_element_by_class_name('ClubGridHandicapIndex')
content = driver.find_element_by_css_selector('td.ClubGridHandicapIndex')
https://selenium-python.readthedocs.io/locating-elements.html
推荐阅读
- java - firebase 中的实时数据库未获取通过 android studio 存储的信息
- ios - 缺少“选择”选项以在 UIDocumentPickerViewController 中选择多个文件
- google-sheets-formula - 如何在电子表格中为 =image 公式创建数组公式?
- python - 如何将帧数组转换为帧对数组?
- python - 如何使用 `pyinstaller` 捆绑安装 Anaconda 的 paraview 包
- json - 在颤振中解析json对象
- mysql - 为什么我的 Heroku 应用程序不能在 Heroku URL 上运行,即使我设置了 SECRET_KEY_BASE 的环境变量?
- ios - 同步 SceneKit 与其他 Renderer 渲染
- c++ - uv_ip4_name 总是得到 127.0.0.1
- css - 容器使用最大高度和最小高度自动调整高度