selenium是一款十分强大的Web应用自动化框架,我们可以通过它来自动操控浏览器。操控浏览器的实质是操控浏览器的界面元素,因此定位元素是使用selenium的关键,selenium中通过find_element方法来完成定位。

1.find_element的三种用法

(1)通过webdriver对象的find_element(“属性名”,“属性值”)

    如1:我们要定位一个属性id,值为"wang"的元素

    ![](https://img-blog.csdnimg.cn/1814a3bf31914b91baca9dfe79d32704.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY29kZS1hbGdvcml0aG1z,size_8,color_FFFFFF,t_70,g_se,x_16)

    如2:我们要定位一个属性class,值为"plant"的元素

    ![](https://img-blog.csdnimg.cn/e5bade46bb684b8ba3e5f11e70335375.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY29kZS1hbGdvcml0aG1z,size_9,color_FFFFFF,t_70,g_se,x_16)

(2)通过webdriver对象的find_element_by_xx(" ")(在selenium的4.0版本中此种用法已经抛弃,不推荐使用)

    如:定位id为username,class\_name为password,tag\_name为input的元素

    ![](https://img-blog.csdnimg.cn/6cfd159312ac4a04a79a12d527d2f674.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY29kZS1hbGdvcml0aG1z,size_13,color_FFFFFF,t_70,g_se,x_16)

(3)通过webdriver模块中的By,以指定方式定位元素

    导入模块:from selenium.webdriver.common.by import By

     如:定位id为username,class\_name为password,tag\_name为input的元素

    ![](https://img-blog.csdnimg.cn/22336baeab5b45e48d94dfb562c1579f.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY29kZS1hbGdvcml0aG1z,size_15,color_FFFFFF,t_70,g_se,x_16)

2.find_element()和find_elements()的区别

(1)find_element()的返回结果是一个WebElement对象,如果符合条件的有多个,默认返回找到的第一个,如果没有找到则抛出NoSuchElementException异常。

    (2)find\_elements()的返回结果是一个包含所有符合条件的WebElement对象的列表,如果未找到,则返回一个空列表。

转载:https://blog.csdn.net/beichanbb/article/details/122240155

呆瓜半小时入门数据分析

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐