18910140161

HTML-使用Selenium/Python查找元素时遇到问题-堆栈溢出

顺晟科技

2022-10-18 12:11:27

139

我只想说,我是Python/Selenium的新手,我已经在谷歌上搜索了几个小时了。

我正在尝试从我们用于在工作中创建票证的网站的元素中提取值。问题是,带有票号的元素没有ID,我似乎无法使用它的其他属性将其挑选出来。

元素的

HTML如下所示:

<代码><;span类=";自定义字段__值NG绑定NG范围";NG-如果=";!$parent.editmode&;amp;&;amp;数据.值";工具提示=";";NG-绑定-HTML=";((状态.已折叠)?(data.value|securelinky:'_空白'))||(' customfield.label.novalue '|i18n)";>;INC22963815<;/span>;

因此,我想从元素中获取INC22963815。

我试过了

<span class = "custom-field__value ng-binding ng-scope"
ng -
    if = "!$parent.editMode &amp;&amp; data.value" tooltip = ""
ng - bind - html = "((status.isCollapsed) ? (data.value | securelinky : '_blank')) || ('customField.label.noValue' | i18n)"> INC22963815 
</span>
ticket = driver.find_element_by_class("custom-field__value ng-binding ng-scope")

但我什么都没得到。

但当我试着

ticket = driver.find_elements_by_class("custom-field__value ng-binding ng-scope")

for number in ticket:
    print(number.get_attribute("innerText"))

我找到了我要找的文本,但它也输出了页面上的几乎所有其他内容,所以它不是很有用。

所以现在我自己也要问这个问题。我需要帮助才能挑出这一个元素。先谢谢你了。


顺晟科技:

我看到您正在使用driver.find_element_by_xpath("xpath_string_here") (其中有空格)。类名不支持class name。所以这就是它不起作用的原因。此外,它只是由空格分隔的多个类的组合。

考虑将其更改为CSS选择器:-

spaces

P.S:-不建议使用浏览器内置工具生成的自动XPath或CSS.

您是否考虑过使用元素的XPath?您可以使用chropath插件https://chrome.google.com/webstore/detail/chropath/ljngjbnaijcbncmcnjfhigebomdlkcjo来获取元素的XPath.

然后

,您可以执行以下

操作
ticket = driver.find_elements_by_tag_name("SPAN")

for number in ticket:
    print(number.get_attribute("innerText"))

让我知道这是否有帮助!

  • TAG:
相关文章
我们已经准备好了,你呢?
2024我们与您携手共赢,为您的企业形象保驾护航