Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Selenium Webdriver-在表中查找元素集_Python_Html_Selenium - Fatal编程技术网

Python Selenium Webdriver-在表中查找元素集

Python Selenium Webdriver-在表中查找元素集,python,html,selenium,Python,Html,Selenium,我正在尝试使用python selenium提取网页中的链接列表。页面上的所有链接的源代码格式如下: <a href = "link"></a> 问题是我只需要一组特定的链接,所有这些链接都在一个表中。上面的代码提供了页面上的所有链接,甚至是表外的链接。页面源的大纲如下所示: <html> ... ... <frame name = "frame"> <a href = "unwantedLink"&

我正在尝试使用python selenium提取网页中的链接列表。页面上的所有链接的源代码格式如下:

<a href = "link"></a>
问题是我只需要一组特定的链接,所有这些链接都在一个表中。上面的代码提供了页面上的所有链接,甚至是表外的链接。页面源的大纲如下所示:

<html>
    ...
    ...
    <frame name = "frame">
        <a href = "unwantedLink">
        <form name = "form">
            <table name = "table">
               <a href = "link1">
               <a href = "link2">
               <a href = "link3">
            </table>
        </form>
    </frame>
    ...
</html>

...
...
...
我需要
link1
link2
link3
,但不需要
unwantedLink
。所需链接和不需要的链接都在同一帧中,因此切换帧将不起作用。是否有办法在表中查找标记名
a
,但不在父帧中


谢谢

这应该会给你想要的:

driver.find_elements_by_css_selector("table[name='table'] a")
table[name='table']
位仅选择属性
name
设置为
“table”
的表。然后选择器获取作为表的后代的所有
a
元素。因此,无论
a
元素是否是
元素的子元素,或者它们是否出现在
td
元素中,都无关紧要

请注意,如果有多个表的
name
属性设置为值
“table”
,您将获得比实际查找的元素更多的元素。(不能保证
名称
属性的唯一性。)

driver.find_elements_by_css_selector("table[name='table'] a")