首页 > 解决方案 > 硒python的get_attribute问题

问题描述

我已经起诉 Selenium-Python 大约 2 个月了。我想获得“rel”属性值。其他所有值都在工作,但“rel”值不返回任何值,即

<span class="isOdd" data-ratio="-1" data-outcome="1.85" data-percentage="23" data-market-id="1677954" data-outcomeno="1" data-id="undefined" rel="[{'fixedoddsweb':'1.62','ratiostatus':0},{'fixedoddsweb':'1.90','ratiostatus':-1},{'fixedoddsweb':'1.85','ratiostatus':-1}]" style="" xpath="1">1.85

如果我尝试喜欢;

link = browser.find_element_by_xpath("//*[@id='eventContentContainer']/div[2]/div[1]/span[4]/ul/li[1]/span")
print(str(link.get_attribute("class")))

它返回,isOdd和它的正确 。或者,如果我尝试获取 data-id,它会返回undefined,这又是正确的值。现在,

如果我尝试使用 rel 属性,它会返回“无”

我在互联网上搜索,他们总是一遍又一遍地谈论 get_attribute 值。我不擅长 HTML。rel属性有什么特别之处吗?

编辑1:我还将execute.script()用于另一个元素,输出如下;

{'class': 'isOdd', 'data-id': 'undefined', 'data-market-id': '1679546', 'data-outcome': '3.10', 'data-outcomeno': '1', 'data-percentage': '3', 'data-ratio': '-1'}

除“rel”外,每个属性都已打印

编辑 2:我发现了真正的问题,如果您在元素上等待大约 1-2 秒,那么元素上会弹出一些标签,然后它具有rel属性。你知道如何在元素上等待大约 1 秒然后点击吗?我猜是关于动态元素

标签: pythonseleniumattributes

解决方案


我找到了我的解决方案。一开始有'rel'属性。如果将鼠标悬停在元素上,则它具有“rel”属性。感谢@0buz 的耐心。但我找到了解决方案。

link = browser.find_element_by_xpath("//*[@id='eventContentContainer']/div[2]/div[1]/span[4]/ul/li[1]/span")
hov = ActionChains(browser).move_to_element(link)
hov.perform()
time.sleep(3)

print(link.get_attribute("rel"))

这就是我所有的基本错误很快:)


推荐阅读