为元素设置焦点

有时我们获得的元素在页面的不可见区域,为了将其拖动到可见区域,在《js中scrollIntoView()的用法》一文中利用scrollIntoView(false),使元素的底部和页面的底部对齐,其实还有一种方法,就是为元素设置焦点,菜鸟教程有提到这种方法,详见 HTML DOM focus()方法

基本语法:

HTMLElementObject.focus()

具体怎么运用?比如在百度首页输入框输入selenium并点击,得到第10个搜索结果,将其拖动到可见区域,可以改写为(改动部分为最后一行)

from selenium import webdriver

#初始化chromedriver
driver = webdriver.Chrome()

#设置隐性等待时间8s
driver.implicitly_wait(8)

#打开百度首页
driver.get("https://www.baidu.com/")

#窗口最大化
driver.maximize_window()

#使用xpath定位输入框,并输入内容 python
driver.find_element_by_xpath("//input[@id=‘kw‘]").send_keys("selenium")

#定位并点击 百度一下 的提交按钮
driver.find_element_by_xpath("//input[@id=‘su‘]").click()

#通过CSS定位到第10条搜索结果
target = driver.find_element_by_css_selector("div[id=‘10‘] h3 a")

#利用js将为元素设置焦点
driver.execute_script("arguments[0].focus();", target)

原文地址:https://www.cnblogs.com/cnhkzyy/p/9249028.html

时间: 2024-10-11 01:16:49

为元素设置焦点的相关文章

当元素获得焦点和失去焦点时,触发 的事件。

我遇到一个问题,点击文本框时,文本框的值消失,点击文本框外时,值还原.经过一系列的过程, 解决的内容:如下: 下面内容摘取于Jquery. 当元素获得焦点时,触发 focus 事件. 可以通过鼠标点击或者键盘上的TAB导航触发.这将触发所有绑定的focus函数,注意,某些对象不支持focus方法. 当页面加载后将 id 为 'login' 的元素设置焦点: $(document).ready(function(){ $("#login").focus(); }); 使人无法使用文本框:

【温故而知新-Javascript】为DOM元素设置样式

1. 使用样式表 可以通过document.styleSheets属性访问文档中可用的CSS样式表,它会返回一组对象集合,这些对象代表了与文档管理的各个样式表. 每个样式表 都由一个CSSStyleSheet 对象代表,它提供了一组属性和方法来操作文档里的样式. 1.1 获得样式表的基本信息 第一步是获得定义在文档中的样式表的一些基本信息. <!DOCTYPE html> <html lang="en"> <head> <meta charse

点击enter回车键实现表单元素切换焦点效果

点击enter回车键实现表单元素切换焦点效果:现在网站都比较追求人性化,比如填写表单的时候,能够实现点击回车就可以切换表单元素的焦点,这样比使用鼠标进行切换更能让人接受,下面就通过代码实例介绍一下如何实现此功能.代码如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://w

解决:子元素设置margin-top,父元素也受影响的问题

<!doctype html><html> <head> <title>子元素设置margin-top,父元素也受影响</title></head><style type="text/css"> * { margin: 0px; padding: 0px; } .father { width: 500px; height: 800px; background: #ccc; cursor: pointer

给所有浏览器的元素设置了一个共同的样式:Normalize.css

使用Normalize.css重置默认样式 CSS重置有助于根据所有设置的样式建立一个基准样式.样式重置有效重写了浏览器某些元素(在浏览器里有很大的不同)默认的样式. 尽管CSS resets在过去的几年里很受欢迎,但是,很多网站至今也没有使用,这些网站CSS的可扩展性因css resets会有很大的困难. 大多数人推荐使用normalize.css重置默认样式,而不是使用由Eric Meyer写的非常流行的CSS Reset或者自己写的Reset.Normalize.css给所有浏览器的元素设

HTML设置焦点

<body <form action="" method="post" name="form1" > <input type="text" id="id" /> </form> </body> <script> function myfocus() { document.getElementById('id').focus(); } <

【使用 DOM】为DOM元素设置样式

1. 使用样式表 可以通过document.styleSheets属性访问文档中可用的CSS样式表,它会返回一组对象集合,这些对象代表了与文档管理的各个样式表. <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>为DOM元素设置样式</title> <style title="core st

js控制ios端的input/textarea元素失去焦点时隐藏键盘

同事在测试产品时发现这样一个:"某些页面击完input框,在点空白处时,iOS设备的键盘不能隐藏并且焦点也不会失去" 带着这个问题我进行了测试,发现在安卓的设备上并没有这种问题出现. 于是写js进行测试给document添加一个click事件,发现了问题的原因: 安卓是可以触发click事件的,而iPhone不会触发. 也就是说在iOS设备下你点击空白的document处input并不能失去焦点. 解决办法: 既然click不能触发iPhone的事件,那就需要找触屏事件来触发一次: o

如何给before和after伪元素设置js效果

目录 [1]动态嵌入CSS[2]添加类名 [3]setAttribute [4]添加样式表 [5]修改样式表 前面的话 无法直接给before和after伪元素设置js效果 例子说明 现在需要为(id为box,内容为"我是测试内容"的div)添加(:before内容为"前缀",颜色为红色的伪类) <!DOCTYPE html> <html lang="en"> <head> <meta charset=&