gpt4 book ai didi

dom - 使用 XPath 查找当前选择的

转载 作者:行者123 更新时间:2023-12-03 15:22:55 27 4
gpt4 key购买 nike

检查 option 是否正确的 XPath 语法是什么?元素是 当前 被选中,或者只是为了得到被选中的 option来自 select 的元素元素,在用户和 JavaScript 可能与之交互的打开页面上? XPath 甚至可以做到这一点,还是它缺乏查看 DOM 属性的能力?

我找不到任何关于此的文档,并且(推测性地)尝试过:

  • //option[@selected=true]
  • //option[@selected="selected"]
  • //option[@selected]

  • 但这些都不起作用;它们根本不匹配任何元素。

    (以防万一,我已经尝试过使用 Chrome 开发者控制台中的 $x 函数和 Python 版 Selenium 中的 find_elements_by_xpath 方法。)

    最佳答案

    简短的回答:这是不可能的。

    更长的答案:XPath 可以查看 HTML 属性,但不能查看 DOM 属性。选择 <option> <select> 中的元素更改 selected <option> 的属性(property)至 true ,并且还更改了 value其父级的属性 <select>元素,但它不影响任何一个的属性,所以它对 XPath 是不可见的。

    <option>具有 selected 的元素属性集,这通常是页面作者确定最初选择哪个选项的方式,您可以使用 //option[@selected] .但是这个没有找到当前选中的<option> ;用户对选择所做的更改对于 XPath 是不可见的。不能保证它甚至会找到最初选择的选项,因为页面作者可能没有放置 selected任何元素上的属性,或者让浏览器默认选择第一个选项,或者让一些 JavaScript 通过 selected 选择初始选项属性(property)。

    倍数other answers here claiming//option[@selected] 这样的选择器可以检测到用户在页面加载后所做的选择更改是完全错误的。

    当然,如果您能够使用 CSS 选择器而不是 XPath 选择器,那么 option:checked 会做的工作。

    关于dom - 使用 XPath 查找当前选择的 <option>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15769282/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com