在Selenium中找到一个孩子的孩子(Python)

Tinneko

我试图在无序菜单列表中找到两个输入字段,但是Selenium无法找到它们。到目前为止,我已经尝试通过xpath和带有顺序标识符的类名称来查找它们

("//input[@class=x-form-text x-form-field][4]")

但它要么找不到元素,要么说元素格式不正确。我唯一获得的成功是使用id,但是每次加载页面时,最后的数字都会改变。

有什么方法可以让它找到菜单列表,列表项然后输入字段?我完全被困住了。

有关菜单列表的注意事项:它会根据分辨率更改大小,如果菜单尺寸变小得多,则会出现一个向下箭头图标,并且除非选择该向下按钮,否则列表底部的字段将消失。

这是html的示例:

<ul id="ext-gen406" class="x-menu-list">
    <li id="ext-comp-1237" class="list-item ">
    <li id="ext-comp-1238" class="list-item ">
    <li id="ext-comp-1239" class="list-item ">
    <li id="ext-comp-1240" class="list-item ">
    <li id="ext-comp-1241" class="list-item ">
    <li id="ext-comp-1242" class="list-item ">
    <li id="ext-comp-1207" class="list-item sep-li">
    <li id="ext-comp-1243" class="list-item ">
    <li id="ext-comp-1244" class="list-item ">
    <li id="ext-comp-1208" class="list-item sep-li">
    <li id="ext-comp-1245" class="list-item ">
    <li id="ext-comp-1246" class="list-item ">
    <li id="ext-comp-1247" class="list-item ">
        <div class='xtb-text'>Text Field Label</div>
    <li id="ext-comp-1248" class="list-item ">
        <div id="ext-gen424" class="x-form-field-wrap x-form-field-trigger-wrap">
            <input id="ext-comp-1248" class="x-form-text x-form-field"name="ext-comp-1248" 
        </div>
    <li id="ext-comp-1249" class="list-item ">
    <li id="ext-comp-1250" class="list-item ">
        <div class="x-form-field-wrap x-form-field-trigger-wrap" id="ext-gen426">
             <input id="ext-comp-1250" name="ext-comp-1250" class="x-form-text x-form-field" 
         </div>        
    <li id="ext-comp-1251" class="list-item ">
    <li id="ext-comp-1252" class="list-item ">
</ul>
Tinneko

好吧,所以...我终于想通了!

这是对我有用的东西:

driver.find_element_by_xpath("//li/div[contains(text(), 'Text labeling input field')]/../following-sibling::li/div/input")

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章