Python Selenium-单击具有类名的div中没有类的锚点链接

Python Selenium-单击具有类名的div中没有类的锚点链接,python,selenium,Python,Selenium,我有一个我想从中获取数据的url。我正在使用selenium打开该站点。我想访问标题类中的页面,并从该页面获取信息。如果div没有类名,我不确定如何单击该div中的链接。它给了我以下错误消息: 找不到元素a html如下所示 <div class="heading"> <a href="....">Text here</a> </div> <div class="heading"> <a href="...."&

我有一个我想从中获取数据的url。我正在使用selenium打开该站点。我想访问
标题
类中的页面,并从该页面获取信息。如果div没有类名,我不确定如何单击该div中的链接。它给了我以下错误消息:

找不到元素a

html如下所示

<div class="heading">
    <a href="....">Text here</a>
</div>

<div class="heading">
    <a href="....">Text here</a>
</div>

您想进入
标题下的内部标记
类,您应该将空格替换为

更改此项:

button = driver.wait.until(EC.element_to_be_clickable(
            (By.css, ".heading a")))
致:


您想进入
标题下的内部标记
类,您应该将空格替换为

更改此项:

button = driver.wait.until(EC.element_to_be_clickable(
            (By.css, ".heading a")))
致:


在您的代码中,您试图调用
parentElement。通过\u tag\u name('a')
查找\u element\u,而
parentElement
是一个列表,因此无法应用
find\u element\u by\u tag\u name()
方法。请尝试以下代码:

Python 3.6

Python 2.7

如果要单击精确链接,可以使用:

driver.find_element_by_link_text('Sport Birmingham').click()

在您的代码中,您试图调用
parentElement。通过\u tag\u name('a')
查找\u element\u,而
parentElement
是一个列表,因此无法应用
find\u element\u by\u tag\u name()
方法。请尝试以下代码:

Python 3.6

Python 2.7

如果要单击精确链接,可以使用:

driver.find_element_by_link_text('Sport Birmingham').click()

您试图在包含类
标题的第一个元素中找到
标记元素。在这一行之后,您需要:

parentElement = driver.find_elements_by_class_name("heading")
循环遍历结果(即parentElements)并在其下获取
a
标记,然后获取其文本。通过查看URL,第一个
标题
div下没有
a
,因此出现错误

编辑:在元素上循环(警告:我不太懂python)


您试图在包含类
标题的第一个元素中找到
标记元素。在这一行之后,您需要:

parentElement = driver.find_elements_by_class_name("heading")
循环遍历结果(即parentElements)并在其下获取
a
标记,然后获取其文本。通过查看URL,第一个
标题
div下没有
a
,因此出现错误

编辑:在元素上循环(警告:我不太懂python)



你有它的id吗?@omri_saadon它没有,只有一个类名。你的
CSS
选择器
。标题a
有什么问题?你有例外吗?你有它的id吗?@omri_saadon它没有,只有一个类名。你的
CSS
选择器
有什么问题。标题a
?你有例外吗?By.css不起作用,所以我稍微更新了这个问题。这不起作用吗
driver.find\u element\u by\u css\u selector('div.heading>a')
by.css不起作用,所以稍微更新了问题。这不起作用吗<代码>驱动程序。通过css选择器('div.heading>a')查找元素。
[print(link.text)用于驱动程序中的链接。通过xpath('//h2[@class=“heading”]/a')]查找元素。^SyntaxError:无效语法
Hmm…是否使用
python2.x
2.7.13
最后一个问题,如果你点击每个链接,你能看到有一个电子邮件地址吗。点击每个链接后是否可能得到此结果?请尝试此
驱动程序。通过xpath('//div[@id=“widget contact”]//a')查找元素。通过xpath('//h2[@class=“heading”]/a')获取属性('href')
Hmm…是否使用
Python2.x
Python2.7.13
最后一个问题,如果单击每个链接,是否可以看到电子邮件地址。在点击每个链接后是否可能获得此信息?请尝试此
驱动程序。通过xpath('//div[@id=“widget contact”]//a')查找元素。获取属性('href')
我认为您的一些答案缺失。如果在第一个标题下没有标签,我怎么能忽略这个呢?我想你的一些答案不见了。如果第一个标题下没有标签,我怎么能忽略它?
parentElement = driver.find_elements_by_class_name("heading")
for a_element in parentElements:
    if (a_element.find_elements_by_tag_name('a').count > 0)
        a_text = a_element.find_element_by_tag_name('a').text