8种定位方法
1、 id 定位 find_element_by_id()
2、 name定位 find_element_by_name()
3、 class name定位 find_element_by_class_name()
4、tag name定位 find_element_by_tag_name() /一般都找不到元素,作为了解
5、link text定位 find_element_by_link_text()/超链接
6、partial link text 定位 find_element_by_partial_link_text()/部分超链接
7、 xpath定位 find_element_by_xpath()/以上的方法不好找,就用以下这两个
8、css selector定位 find_element_by_css_selector()
以上找不到就是Frame不对,需要切换Frame
1.frame标签有frameset、frame、iframe三种,frameset跟其他普通标签没有区别,不会影响到正常的定位,而frame与iframe会影响selenium定位;
selenium提供了 switch_to.frame() 方法来切入frame;
switch_to.frame(reference)
reference是传入的参数,用来定位frame,可以传入id、name、index以及selenium的WebElement对象;
例:
driver.switch_to.frame("mainFrame事件列表")
2.浏览器窗口的切换通过句柄(handle)来操作,每个窗口都有一个句柄,代表当前窗口,需要操作哪个页面的窗口,切换到窗口对应的句柄。通过driver.switch_to.window(handle)来切换句柄
例:
self.driver.switch_to.window(self.driver.window_handles[1])