一尘不染

使用python访问Selenium Web元素

selenium

我敢肯定,这已经在某个地方得到了回答,因为这是一个非常基本的问题-但是,对于我的一生,我无法在网上找到答案。我觉得自己是个白痴,但是我不得不问,这是:

我正在编写一个python代码,该代码将生成域中所有页面地址的列表。这是使用selenium2完成的-当我尝试访问由selenium产生的所有链接的列表时,会发生我的问题。

这是我到目前为止的内容:

from selenium import webdriver
import time

HovedDomene = 'http://www.example.com'
Listlinker = []
Domenesider = []
Domenesider.append(HovedDomene)

driver = webdriver.Firefox()

for side in Domenesider:

        driver.get(side)
        time.sleep(10)
        Listlinker = driver.find_elements_by_xpath("//a")

        for link in Listlinker:

            if link in Domenesider:
              pass
            elif str(HovedDomene) in str(link):
              Domenesider.append(side)

print(Domenesider)
driver.close()

Listlinker变量不包含在页面上找到的链接-
而是列表包含(我在这里猜测)称为WebElements的特定于selenium的对象。但是,我找不到任何可以提供链接的WebElement属性-
事实上,我找不到在python中访问的WebElement属性的任何示例(至少不是我可以重现的方式)

我真的很感谢大家能给我的任何帮助

真诚的新秀


阅读 218

收藏
2020-06-26

共1个答案

一尘不染

我熟悉python的硒API,但您可能可以使用get_attribute(attributename)方法接收链接。所以应该是这样的:

linkstr = ""
for link in Listlinker: 
  linkstr = link.get_attribute("href")

  if linkstr in Domenesider:
    pass
  elif str(HovedDomene) in linkstr:
    Domenesider.append(side)
2020-06-26