精华内容
下载资源
问答
  • 模拟点击事件的时候,遇到报错,记录学习新知识点。 报错内容:Element is not clickable at point,Other element would receive the click: xxx 出现该问题的原因是,点击事件被其他层的组件吸收了,没能定位到...

    在模拟点击事件的时候,遇到报错,记录学习新知识点。
    报错内容:Element is not clickable at point,Other element would receive the click: xxx

    出现该问题的原因是,点击事件被其他层的组件吸收了,没能定位到我们想要点击的位置,该问题常出现在以下几个场景:

    1. iframe框架跳转里的btn点击
    2. table表格里的btn点击
    3. 两个btn结构完全相同,点击位置没定位好时

    原代码:

    driver.find_element_by_xpath('//div[@class="modal-footer"][1]/button').click()
    

    执行时报错

    unknown error: Element <button data-bb-handler="ok" type="button" class="btn btn-primary">...</button> is not clickable at point (1078, 114). Other element would receive the click: <button data-bb-handler="ok" type="button" class="btn btn-primary">...</button>
    

    由字面意思可得,我们定位的button元素,在这个位置点击不了,另外一个button元素可能吸收了这次点击事件。
    这个时候我们不能直接点击,而是通过正确定位后,执行script代码***“arguments[0].click();”***进行点击。

    代码如下:

    btn = driver.find_element_by_xpath('//div[@class="modal-footer"][1]/button')
    driver.execute_script("arguments[0].click();", btn)
    

    最后成功进行点击事件!
    不积小流,无以成江河;不积跬步,无以至千里。
    (●’◡’●)

    展开全文
  • 进行了登录操作,发现无法操作跳转页面的div层 driver.find_element_by_xpath().click...最后通过Selenium 鼠标模拟点击: driver = webdriver.Chrome() driver.get('https://www.xxx.com') ActionChains(driver)....
    进行了登录操作,发现无法操作跳转页面的div层
    
    driver.find_element_by_xpath().click()

    点击无反应:

    <div class="hover" data-v-2ca27518="">
            登入
          </div>

    最后通过Selenium 鼠标模拟点击:

    driver = webdriver.Chrome()
    driver.get('https://www.xxx.com')
    ActionChains(driver).move_to_element(driver.find_element_by_xpath('xxxx')).click().perform()
    

     

    展开全文
  • python3.6+selenium 模拟鼠标右键点击

    千次阅读 2019-07-02 15:00:12
    import unittest from selenium.webdriver import ActionChains import win32clipboard as w import win32con import time ...#模拟鼠标右键点击 设置剪切板内容 def setText(aString): w.OpenClipboa...

    import unittest
    from selenium.webdriver import ActionChains
    import win32clipboard as w
    import win32con
    import time
    from selenium import webdriver

    #模拟鼠标右键点击

    设置剪切板内容

    def setText(aString):
    w.OpenClipboard()
    w.EmptyClipboard()
    w.SetClipboardData(win32con.CF_UNICODETEXT, aString)
    w.CloseClipboard()

    class MyTestCase(unittest.TestCase):
    def setUp(self):
    self.driver=webdriver.Firefox(executable_path=‘D:\python\driver\geckodriver’)
    def test_rightClickMouse(self):
    url=“http://www.sogou.com
    self.driver.get(url)
    #searchBox=self.driver.find_elements_by_id(“query”)
    searchBox=self.driver.find_element_by_link_text(‘新闻’)
    #searchBox.click()
    #执行鼠标右键单击操作
    ActionChains(self.driver).context_click(searchBox).perform()
    time.sleep(2)

    if name == ‘main’:
    unittest.main()

    展开全文
  • Python使用Selenium模拟浏览器输入和鼠标点击 Selenium库有很多功能,它可以帮我们模拟浏览器输入内容和鼠标点击.本文介绍实现的步骤和方法,并给出最易出现的BUG的解决办法 一、安装Selenium pip install ...

    Python使用Selenium模拟浏览器输入和鼠标点击

    Selenium库有很多功能,它可以帮我们模拟浏览器输入内容和鼠标点击.本文介绍实现的步骤和方法,并给出最易出现的BUG的解决办法

    一、安装Selenium

    pip install Selenium

    二、下载chromedriver.exe

    需要下载与浏览器版本对应的chromedriver.exe到代码所在目录下, 

    下载地址:http://chromedriver.storage.googleapis.com/index.html

    (注意:运行代码时如果没有下载与自己的浏览器版本匹配的chromedriver.exe放到代码同级目录下,

    会报错:selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH. Please see https://sites.google.com/a/chromium.org/chromedriver/home)

    三、编写代码实现模拟浏览器

    参考代码:以登录淘宝网首页为例,在搜索栏输入搜索内容,点击“搜索”按钮,(网站加载需要时间,根据网速等),然后在提示扫码登录的界面点击“账号密码登录”(换了页面,还是可以点击和输入),具体代码说明见注释

    from selenium import webdriver
    import time
    
    
    # 声明浏览器
    browser = webdriver.Chrome()
    try:
        # get打开指定的url,传入要打开的url,以淘宝网为例
        browser.get('https://www.taobao.com/')
        # 通过find_element_by_name获取到网页标签,send_keys()输入内容,在搜索栏输入python
        browser.find_element_by_name('q').send_keys('python')
        time.sleep(1)
        '''
        通过find_element_by_class_name获取到网页标签,click()点击
        注意class名中的空格是表示父子级的关系,如果有空格,则class_name只取最后一段,然后还要避免有同名的class,不要取错了
        为了避免取错标签,优先根据id或name等其他方式取
        如:淘宝网的搜索按钮class name为btn-search tb-bg,用btn-search tb-bg取时报错,用tb-bg取则成功
        '''
        # browser.find_element_by_class_name('btn-search tb-bg').click()  # 报错
        browser.find_element_by_class_name('tb-bg').click()  # 成功
        time.sleep(5)
        # 点击"密码登录"按钮
        # browser.find_element_by_class_name('forget-pwd J_Quick2Static').click()  # 报错
        browser.find_element_by_class_name('J_Quick2Static').click()  # 正常
        time.sleep(10)
        browser.close()
    except Exception as e:
        print("模拟登录失败:{}".format(e))
        browser.close()

    BUG描述:

         使用webdriver声明浏览器后,打开网页,然后使用find_element_by_class_name('class_name')选择html标签时,报错:

         Message: invalid selector: Compound class names not permitted

         消息:无效选择器:不允许使用复合类名

    原因分析:

          我们通过F12从浏览器获取到的html元素的class name中间有空格,所以提示我们类名不合法,不允许的类名

    解决方法:

    1.html元素的class name中间的空格是表示父级和子级的关系,我们调用以上方法的时候使用类名的最后一段就可以了

          如:<button type="submit" class="btn-search tb-bg">

             我们通过find_element_by_class_name('btn-search tb-bg')选择button标签,就会报错

             改成find_element_by_class_name('tb-bg')就可以选择到需要的button标签(btn-search和tb-bg中间有空格),但是要确认tb-bg不是被很多个标签重复使用的类名,能确保选择到自己要选的那个标签

    2.webdriver有很多方法,使用其他方法:

             find_element_by_id(),find_element_by_name(),find_element_by_css_selector()等,如果需要选择的html标签有id,优先通过id选择,或者通过name等,除非这个标签只有class时,再使用上面的方法(换种思路).

     

    展开全文
  • #coding:utf-8 from selenium import webdriver from selenium.webdriver.common.action_chains import ActionChains #引入ActionChains鼠标操作类 from selenium
  • Python使用selenium模拟点击,进入下一页(三) 嗯,昨天呢,我们已经实现了自动输入百度然后搜索Cgrain,然后点击按钮,进入我的页面,在这里呢,有个问题 ActionChains(seleniumGoo).move_by_offset(-480, ...
  • python selenium 鼠标事件

    2017-06-06 16:07:58
    selenium做自动化,有时候会遇到需要模拟鼠标操作才能进行的情况,比如单击、双击、点击鼠标右键、拖拽等等。而selenium给我们提供了一个类来处理这类事件——ActionChains selenium.webdriver.common.action...
  • 目录 1.ActionChains基本用法 ...用selenium做自动化,有时候会遇到需要模拟鼠标操作才能进行的情况,比如单击、双击、点击鼠标右键、拖拽等等。而selenium给我们提供了一个类来处理这类事件——ActionChains ...
  • selenium做自动化,有时候会遇到需要模拟鼠标操作才能进行的情况,比如单击、双击、点击鼠标右键、拖拽等等。而selenium给我们提供了一个类来处理这类事件——ActionChains selenium.webdriv...
  • selenium做自动化,有时候会遇到需要模拟鼠标操作才能进行的情况,比如单击、双击、点击鼠标右键、拖拽等等。而selenium给我们提供了一个类来处理这类事件——ActionChains selenium.webdriver.common.action_...
  • 本文介绍如何通过ActionChains模块中的driag_and_drop方法模拟鼠标右键点击 实现鼠标右键点击元素loc 代码如下: import time from selenium import webdriver from selenium.webdriver import ActionChains from ...
  • 本文介绍了PythonSelenium模拟JQuery滑动解锁实例,分享给大家,也给自己留个笔记 滑动解锁一直做UI自动化的难点之一,我补一篇滑动解锁的例子,希望能给初做Web UI自动化测试的同学一些思路。 首先先看个例子。 ...
  • ActionChains方法列表 ...click_and_hold(on_element=None) ——点击鼠标左键,不松开 context_click(on_element=None) ——点击鼠标右键 double_click(on_element=None) ——双击鼠标左键 drag_and_drop(source,...
  • 大家好,我是宋哈哈,本次的文章只是想做个笔记分享。 from selenium.webdriver.common.action_chains import ActionChains from selenium.webdriver....action.context_click(element)#右键点击该元素 action.s...
  • selenium做自动化,有时候会遇到需要模拟鼠标操作才能进行的情况,比如单击、双击、点击鼠标右键、拖拽等等。而selenium给我们提供了一个类来处理这类事件——ActionChains selenium.webdriver.common.action_...
  • 首先控制selenium模拟请求知乎登录界面:https://www.zhihu.com/signup?next=%2F 但是默认为注册,所以需要控制鼠标点击上边那个登录按钮,就变成这样了。 然后我们在控制浏览器找到输入用户名、密码的这两个...
  • python + selenium 模拟登陆b站

    千次阅读 2019-01-24 15:35:14
    文章目录截取验证码图片识别缺口模拟滑动爬坑代码相关优化参考资料 截取验证码图片 首先将鼠标移至小块处,会出现滑动后的图片(即原图) 利用selenium找到验证码图片所在元素 这样,我们就可以截取整个网页...
  • 使用 click() 可以模拟鼠标的左键点击事件,现在的 web 页面中有很多其他的鼠标交互方式,比如鼠标右击,双击,悬停,鼠标拖放等功能。在 WebDriver 中,将这些关于鼠标操作的方法封装在 ActionChains 类 1、from ...
  • selenium做自动化,有时候会遇到需要模拟鼠标操作才能进行的情况,比如单击、双击、点击鼠标右键、拖拽等等。而selenium给我们提供了一个类来处理这类事件——ActionChains selenium.webdriver.common.action_...
  • selenium做自动化,有时候会遇到需要模拟鼠标操作才能进行的情况,比如单击、双击、点击鼠标右键、拖拽等等。而selenium给我们提供了一个类来处理这类事件――ActionChainsselenium.webdriver.common.action_...

空空如也

空空如也

1 2 3 4 5 ... 7
收藏数 124
精华内容 49
关键字:

pythonselenium模拟鼠标点击

python 订阅