当前位置: 首页 > 知识库问答 >
问题:

Python Selenium:使用xpath查找对象属性

郁吉星
2023-03-14

我是xpath的新手,试图使用xpath获取“value”的值:

<input type="submit" value="  Search  " class="long searchButton" style="width:190px !important;">

虽然通过"type="提交"很容易找到元素,但如下所示:

browser.find_elements_by_xpath("//*[@type='submit']")

我还没能弄清楚如何获得我需要的值,因为:

browser.find_elements_by_xpath("//*[@type='submit']/@value")

有点意外地给出了一个错误:

expression "//*[@type=\'submit\']/@value" is: [object Attr]. It should be an element

有什么办法解决这个问题吗?

编辑:xpath是正确的,但它“返回”一个obj属性,因为它不是元素,所以不允许使用。我找不到像get_attr_by_xpath()这样的方法,或者任何类似的方法

共有2个答案

司徒正信
2023-03-14

应该是这样的

browser.find_elements_by_xpath("//*[@type='submit']/@value").text

更新:

使用您使用的函数,我们只能提取元素,而不能提取其属性。要获取其属性,表达式应该如下所示

browser.find_elements_by_xpath("//*[@type='submit']").get_attribute("value")

裁判:http://selenium-python.readthedocs.org/en/latest/api.html#selenium.webdriver.remote.webelement.WebElement.find_elements_by_tag_name

曹成双
2023-03-14

最后,我将get\u属性(“value”)用作:

for i in browser.find_elements_by_xpath("//*[@type='submit']"):
    print i.get_attribute("value")
 类似资料:
  • 问题内容: 我是xpath的新手,尝试使用xpath获取“值”的值: 虽然很容易找到像这样的元素: 我还无法弄清楚如何获得所需的值,例如: 某些预期会产生错误: 任何想法如何解决这个问题? 编辑:xpath是正确的,但是它“返回”了obj属性,并且由于它不是元素,因此不允许使用。我找不到类似get_attr_by_xpath()之类的方法。 问题答案: 我最终用作:

  • 给定以下JSON结构,我希望能够在数组,其中包含具有特定。 假设我正在寻找带有的条目——在这种情况下,我想提取完整的对象: 我尝试嵌套过滤器,但没有成功: 我可以很容易地通过,但是我想实际上检索它的父对象!这在JSONPath中可能吗?

  • 我的要求是检查添加到购物车的数量是否匹配Test类中的1。 我使用了下面的xpath,但这会抛出“NoSuchElementException” 请您帮助我定位元素,然后使用属性值并验证它是否与1匹配。 我已经创建了一个页面- 公共类CartPage扩展BasePage{ 稍后在测试类中,我想验证数量是1。

  • 我一直在为这个selenium项目苦苦挣扎,一直在寻找与这个问题略有关联的老参考资料或帖子。我承认我不熟悉xpath和selenium,所以希望它可以像修复语法一样简单。我正在使用python 3.6。卢本图19.10上的9,如果这有什么区别的话。 我试图访问的html元素: 我尝试过的代码: 尝试不同的XPath时出现的错误消息: 我检查了火狐来尝试捕获xpath,显示为: 虽然我还不确定如何调

  • 我在下面的网页中找不到链接的XPath/CSS选择器:“Select Participant”,然后我将循环遍历所有链接。 列表链接=driver.findElements(By.xpath(“//div[contains(@class='glossymenu')]//a”);迭代器iter=links.Iterator();//system.out.println(“CLASS Elements

  • 我找到了一个解决方案,但它使用Java-8。