需要Selenium返回给定HTML的类标题内容

时间:2019-06-21 15:53:35

标签: python selenium

使用Selenium进行网络抓取。让它登录到一个站点,该站点一次返回具有五个值的HTML数据表。我将让Selenium从表中抓取特定数据,写入文件,单击“下一步”,然后重复下五个。

新的自动化脚本。我的get_attribute,find_elements_by_class_name等种类繁多,例如:

pnum = prtnames.get_attribute("title")
for x in prtnames:
    print('pnum')

以下是返回值之一的HTML:

<div class="text-container prtname"><span class="PrtName" title="P011">P011</span></div>

我需要获取“ P011”值。显然,Selenium没有“ find_elements_by_title”,并且该值没有HTML ID。该行HTML的Xpath为:

//*[@id="printerConnectTable"]/tbody/tr[5]/td/table/tbody/tr[1]/td[2]/div/span

但是我在该Xpath中看不到“ title”或“ P011”的引用。

    pnum = prtnames.get_attribute("title")
AttributeError: 'list' object has no attribute 'get_attribute'

就像get_attribute不存在一样,但是上面有一些(尽管不是很多)文档。

从根本上讲,我想获取“ P011”值并打印到控制台,然后我知道Selenium正在使用正确的数据。

P.S。所有这些我都是自学成才的,我正在自动执行sysadmin任务。

1 个答案:

答案 0 :(得分:1)

我认为问题在于prtnames是元素列表,而不是特定元素。如果想要将标题属性的列表用作prtnames列表,则可以使用列表推导。

pnums = [x.get_attribute('title') for x in prtnames]