美文网首页
selenium之 (switch_to.active_elem

selenium之 (switch_to.active_elem

作者: majianping | 来源:发表于2018-08-15 11:31 被阅读0次

    今天我们讲讲switch_to家中的一个异类:switch_to.active_element,当然,我们先普及一下其他的家族成员。


    1.switch_to

    selenium做自动化的过程中,经常会遇到alert、frame和新的window,这是经常是switch_to家族大展拳脚的时候,先看看switch_to家族的成员:

        alert ——返回浏览器的Alert对象,可对浏览器alert、confirm、prompt框操作

        default_content() ——切到主文档

        frame(frame_reference) ——切到某个frame

        parent_frame() ——切到父frame,这个方法也不常被人所知,但有多层frame的时候很有用,不过这里要提一句,一般这种嵌套多层的      frame都是有问题的,会影响到性能,可以提给开发,让其改进 

        window(window_name) ——切到某个浏览器窗口 

        active_element ——返回当前焦点的WebElement对象


    2.switch_to.active_element

    switch_to.active_element返回的是当前焦点的对象,即返回WebElement对象。

    那么焦点是什么?大概可以这样理解:即网页上当前操作的对象(也就是你网页上光标的位置),比如,你鼠标点击到了一个input框,你可以在这个input框里输入信息,这时这个input框即焦点。

    说了半天,到底什么时候会需要返回当前的焦点呢?下面这个例子可以更直观一些:

        一个网页上的新建文件夹的功能,右键-新建之后,在页面上有个输入文件夹名的input框,但这个框一旦失去焦点而且没有内容的话,就会消失、取消掉新建文件夹的操作。如图:

    这种情况只能用:

    driver.find_element_by_class_name('fnew').click();

    driver.switch_to.active_element.send_keys('filename');

    结果:成功添加上了新的文件夹!

    注:active_element后面没有括号。

    相关文章

      网友评论

          本文标题:selenium之 (switch_to.active_elem

          本文链接:https://www.haomeiwen.com/subject/uevibftx.html