今天的问题与下图中的类似

这是一个input型输入框,当我点击或输入值时,输入框下方会显示选择项帮助快速输入,代码如下:

<input class="v-input some" autocomplete="off" name="some"/>
<input name="any" style="display: none;"/>
<ul class="V-ss bb ">
<li class="v-select-item">苹果</li>
<li class="v-select-item">樱桃</li>
<li class="v-select-item">蓝莓</li>
</ul>

一开始我只定位了inout输入框,向其中输入数据“苹果”,然后点击查找,这时问题出现了,虽然页面刷新了,但是并未进行查找

问题存在的原因是,输入框虽然提供了输入,但是必须从出现的选择项中进行点击,完成选择,才可进行查找,由此我就需要定位到代码中相应的li

解决方法1:

首先向输入框中输入值,然后下方选项就会只显示<li>苹果</li>,然后在查找input输入框的兄弟元素下的li(此时是唯一的)

drive.find_element_by_name("some").input("苹果“)
drive.find_element_by_xpath("//input[@name='some']/following-sibling::ul/li").click()

解决方法2:

点击输入框,将会显示下方选项,然后查找input输入框下兄弟元素下的li(此时是一个列表),然后传入值,遍历lil列表,找到和传入值相同的li的text值,进行点击

drive.find_element_by_name("some").click()
lilist=drive.find_elements_by_xpath("//input[@name='some']/following-sibling::ul/li")
for li in lilist:
if li.text=="苹果"
li.click()

我认为方法2比方法1更严谨一些,上述代码还少了一些判断,在实际应用中不可忽视

selenium 定位input输入框下的选择项的更多相关文章

  1. 基于jQuery的input输入框下拉提示层(自动邮箱后缀名)

    基于jQuery的input输入框下拉提示层,方便用户输入邮箱时的提示信息,需要的朋友可以参考下     效果图   // JavaScript Document (function($){ $.fn ...

  2. Bootstrap 表单控件一(单行输入框input,下拉选择框select ,文本域textarea)

    单行输入框,常见的文本输入框,也就是input的type属性值为text.在Bootstrap中使用input时也必须添加type类型,如果没有指定type类型,将无法得到正确的样式,因为Bootst ...

  3. Selenium获取input输入框中值的三种方法

    第一种用jQuery的val方法: js = "return $('input').val();" driver.execute_script(js) 第二种用jQuery的att ...

  4. input+div 下拉选择框

    前台html页面 <html> <head> <meta name="viewport" content="width=device-wid ...

  5. Selenium获取input输入框中值的几种方法

    1.selenium 自带的方法 get_attribute('value') driver.find_element_by_name("f[url]").get_attribut ...

  6. selenium 获取input输入框中的值的方法

    方法一:获取input的文本值 <input class="form-text-normal" id="txtName" name="Name& ...

  7. jqgrid 设置编辑行中的某列为下拉选择项

    有时,需要对编辑行中的某列的内容通过选择来完成,以保证数据的一致性.规范性. 可设置colModel的label的属性 edittype: "select",同时指定 editop ...

  8. [jQueryUI] – Chosen:select下拉选择框美化插件及问题

    Chosen 是一个支持jquery的select下拉框美化插件,它能让丑陋的.很长的select选择框变的更好看.更方便.不仅如此,它更扩展了select,增加了自动筛选的功能.它可对列表进行分组, ...

  9. selenium的下拉选择框

    今天总结下selenium的下拉选择框.我们通常会遇到两种下拉框,一种使用的是html的标签select,另一种是使用input标签做的假下拉框. 后者我们通常的处理方式与其他的元素类似,点击或使用J ...

随机推荐

  1. star ccm+ 11.02安装

    STAR CCM+是CD-Adapco公司的主打软件,其安装方式较为简单,这里以图文方式详细描述STAR CCM+11.02安装过程. 1 安装准备工作2 正式安装3 软件破解4 软件测试 1 安装准 ...

  2. linux更新系统之后,删除多余的开机启动项

    实验环境是centos7,采用uefi的引导方式,启动管理软件是grub2 1. 进入 /boot 目录,应该可以发现许多文件的文件名是以 vmlinuz 开头,后面跟着版本信息,这些就是内核.我们要 ...

  3. spring替代方法

    总结spring替代方法的使用 MyValueCalculator类中的computerValue方法将会被替代 public class MyValueCalculator { public Str ...

  4. java多线程制作计时器

    基本思路: 在类中创建thread 供按钮监听器调用. 界面设计:

  5. C# 《编写高质量代码改善建议》整理&amp;笔记 --(三)泛型&amp;委托&amp;事件

    1.泛型 基于泛型,我们可以将类型参数化,以便更大范围地进行代码复用.同时,它减少了泛型类及泛型方法中的转型, 确保类型安全. 1)总是优先考虑泛型 优点:可重用性,类型安全,高效率. 2)避免在泛型 ...

  6. Ocelot-基于.NET Core的开源网关实现

    写在前面 API网关是系统内部服务暴露在外部的一个访问入口,类似于代理服务器,就像一个公司的门卫承担着寻址.限制进入.安全检查.位置引导等工作,我们可以形象的用下图来表示: 外部设备需要访问内部系统服 ...

  7. (三)ajax请求不同源之cors跨域

    一.基本原理 CORS是一个W3C标准,全称是"跨域资源共享"(Cross-origin resource sharing)它允许浏览器向跨源服务器,发出 XMLHttpReque ...

  8. idea运行固定多个模块项目

    第一步:配置workspace.xml 在.idea文件夹下,搜索RunDashboard位置 <component name="RunDashboard"> < ...

  9. java给时间格式化

    package com.apress.springrecipes.sequence; import java.text.DateFormat;import java.text.SimpleDateFo ...

  10. windows nginx出现 was not signaled for 5s的看过来

    windows下 nginx 配置ssl的key是不能存储密码的,否则启动时会提示输入密码 输入后也启动不起来,会报错: 2011/04/18 09:49:09 [alert] 1992#4548: ...