皮皮网
皮皮网

【诚信网源码】【神马pc源码】【opencv源码路径】selenium sendkeys源码

时间:2024-12-24 02:23:09 来源:miku tap源码

1.selenium常用api
2.如何使用PageFactory
3.Python+selenium如何定位多层嵌套元素

selenium sendkeys源码

selenium常用api

        浏览器

        定位/操作对象

        webdriver 提供了一系列的元素定位方法,常用的有以下几种:

        获取单个的:find_element_by_xxx()

        获取所有的:find_elements_by_xxx()获取所有的

        传数据:send_keys()

        点击:click()

        清除数据:clear()

        提交:submit()

        其他常用WebElement方法

        获取该对象的尺寸大小:driver.find_element_by_id("kw").size()

        获取该对象的文本:driver.find_element_by_id("cp").text

        获取该对象的属性:driver.find_element_by_id('su').get_attribute('type')

        该对象是否可见(布尔):driver.find_element_by_id("kw").is_displayed()

        键盘事件

        from selenium.webdriver.common.keys import Keys

        层级定位

        driver.find_element_by_id('xx').find_element_by_link_text('xx').click()

        这里用到了二次定位,通过对 Link1 的单击之后,出现下拉菜单,

        先定位到下拉菜单,再定位下拉菜

        单中的选项。当然,如果菜单选项需要单击,可通过二次定位后也直接跟 click()操作。

        frame定位

        switch_to_frame方法

        跳转句柄

        select(option)

        对这种类型的下拉框一般的处理是两次点击,第一点击弹出下拉框,

        第二次点击操作元素。当然,也有些下拉框是鼠标移上去直接弹出的,

        那可以使用 move_to_element()进行操作

        文件上传

        直接定位file标签sendkeys绝对路径或者相对路径

        调用js

        execute_script

        控制浏览器滚动条

        利用js操作滚动条实现,但是selenium3中支持自动搜索页面,不需要再操作滚动条来检索标签元素,了解即可

        js="var q=document.documentElement.scrollTop="

        driver.execute_script(js)

        time.sleep(2)

        cookie操作

        获取对象的属性

如何使用PageFactory

       ä¸€ä¸ªç®€å•çš„例子

        为了使用PageFactory,首先需要在PageObject(页面对象)中声明一些元素(WebElements

       æˆ– RenderedWebElements),例如:

       Java代码

       package org.openqa.selenium.example;

       import org.openqa.selenium.WebElement;

       public class GoogleSearchPage

       {

        private WebElement q;

       public void searchFor(String text)

        {

        q.sendKeys(text);

        q.submit();

        }

       }

       package org.openqa.selenium.example;

       import org.openqa.selenium.WebElement;

       public class GoogleSearchPage

       {

        private WebElement q;

        public void searchFor(String text)

        {

        q.sendKeys(text);

        q.submit();

        }

       }

        为了让这段代码工作,而不是因为“Q”是不能实例化抛出一个NullPointerException,所以我们需要初始化PageObject:

       Java代码

       package org.openqa.selenium.example;

       import org.openqa.selenium.WebDriver;

       import org.openqa.selenium.WebElement;

       import org.openqa.selenium.htmlunit.HtmlUnitDriver;

       import org.openqa.selenium.support.PageFactory;

       public class UsingGoogleSearchPage

       {

        public static void main(String[] args)

        {

        WebDriver driver = new HtmlUnitDriver();

        driver.get("/");

        GoogleSearchPage page = PageFactory.initElements(driver,源码 GoogleSearchPage.class);

        page.searchFor("Cheese");

        }

       }

       package org.openqa.selenium.example;

       import org.openqa.selenium.WebDriver;

       import org.openqa.selenium.WebElement;

       import org.openqa.selenium.htmlunit.HtmlUnitDriver;

       import org.openqa.selenium.support.PageFactory;

       public class UsingGoogleSearchPage

       {

        public static void main(String[] args)

        {

        WebDriver driver = new HtmlUnitDriver();

        driver.get("/");

        GoogleSearchPage page = PageFactory.initElements(driver, GoogleSearchPage.class);

        page.searchFor("Cheese");

        }

       }

Python+selenium如何定位多层嵌套元素

       有时候,什么定位元素的源码诚信网源码方法都试过了,还是源码神马pc源码定位不到元素,就考虑frame切换问题 driver.switchTo().frame("定位到的源码opencv源码路径frame元素"); //接下来就可以在这个frame框架内定位该框架里的元素了 driver.findElement(By.name("message")).sendKeys("top"); //如果定位另一框架内元素,需返回到web页面,源码期权app源码再进行切换 driver.switchTo().defaultContent(); driver.switchTo().frame("要定位的源码织信源码frame元素");

更多内容请点击【综合】专栏