python - Python Selenium - 如何单击不是按钮的元素
问题描述
我在 python 中使用 selenium 并尝试单击不是按钮类的元素。我正在使用 Google Chrome 作为我的浏览器/网络驱动程序
这是我的代码:
from selenium import webdriver
from bs4 import BeautifulSoup
driver = webdriver.Chrome(executable_path="/Users/ep9k/Desktop/SeleniumTest/drivers/chromedriver")
driver.get('http://tax.watgov.org/WataugaNC/search/commonsearch.aspx?mode=address')
driver.find_element_by_name('btAgree').click() #clicks 'Agree' button to agree to site's terms
driver.find_element_by_name('inpNumber').send_keys('190')
driver.find_element_by_name('inpStreet').send_keys('ELI HARTLEY')
driver.find_element_by_name('btSearch').click()
我可以解析结果 HTML(例如 Beautiful Soup),但我想点击它们。如果我检查第一行元素,我发现它保存在一个 div 元素中,样式为“margin-left:3px;”。
但这不是按钮元素,所以正常的 click() 函数不起作用。有没有办法点击这个?例如,如果我单击第一行结果,我会被带到此页面,其中包含更多信息(这是我真正想要的):
解决方案
该元素不需要是可点击的按钮。
运行您的代码后,我添加了:
results = driver.find_elements_by_class_name('SearchResults')
first_result = results[0]
first_result.click()
它对我来说非常好。
很可能您尝试单击一些不同的元素,这就是它不起作用的原因
编辑:更准确地说,很可能您尝试单击<tr>
标签内的 div 元素。虽然<tr>
标签包含javascript:selectSearchRow('../Datalets/Datalet.aspx?sIndex=1&idx=1')
所以你的脚本应该点击这个标签而不是<div>
推荐阅读
- python - 我试图让它在机器人会告诉你指定一个成员静音的地方,如果他们没有指定它。我怎么做?我试过但它不起作用
- c++ - c ++ winapi - 在按钮按下时在同一窗口中切换2组不同按钮/控件布局的最佳实践
- python - path, angle = line.strip().split() ValueError: too many values to unpack (expected 2)
- r - 我想阅读 R 中的 .MAP 文件。它的每小时平均温度为每半米每 2 弧度度,从 0 到 120
- input - 如何访问 select2 小部件中的动态输入值?
- python - Django中POST请求后的AttributeError
- python - 数字的正则表达式,包括小数和斜线
- ios - 在 TableView 的层次结构前面添加额外的视图
- postgresql - 在 Windows 上的 Postgresql 中从程序 (gzip '..../data.csv.gz') 复制 (...) 失败
- file - 将脚本提取到 SQL