1:查看网页所有的iframe
# 打开网页
driver.get("https://example.com")
# 切换到默认的frame(如果有)
driver.switch_to.default_content()
# 获取所有的iframe元素
iframes = driver.find_elements_by_tag_name('iframe')
# 遍历每个iframe并输出其属性值
for iframe in iframes:
print(iframe.get_attribute('name'))
2: 切换到某个iframe
# 打开网页
(一)
frame = self.driver.find_elements(By.CSS_SELECTOR, "iframe")[1]
(二)
frame = iframes[1]
self.driver.switch_to.frame(frame)
3:退出,切换到主页面
self.driver.switch_to.default_content()
4:切换新的标签页
self.driver.execute_script("window.open('https://baidu?menu_id=user')")
handles = self.driver.window_handles
self.driver.switch_to.window(handles[-1]) # 切换新的标签页
5:点击按钮
(一)
click()
(二)
search_btn = utils.get_element(self, 'id', "decQuery")
self.driver.execute_script("$(arguments[0]).click()", search_btn) # 查询按钮
6:判断按钮的disabled禁止按钮
if 'disabled' not in page_num.get_attribute('class'): # > 判断下一页是否可以点击,禁止点击,则退出
can_next = True
7:通过js脚本获取页面的值
def execute_script_by_id(name):
return self.driver.execute_script("return document.getElementById('" + name + "').value")
8:readonly 属性【只读】
类似这样的时间戳控件:
可以看到控件有:readonly 属性【只读】
一、移除或者关闭web端时间控件的readonly属性的方法
方法一:原生js,移除readonly属性
js = "document.getElementById('train_date').removeAttribute('readonly')"
方法二:jQuery,移除readonly属性
js = "$('input[id=train_date]').removeAttr('readonly')"
方法三:jQuery,设置属性为false
js = "$('input[id=train_date]').attr('readonly',false)"
方法四:jQuery,设置属性为空
js = "$('input[id=train_date]').attr('readonly',’ ‘)"
二、清除时间控件原有显示文本, send_keys输入自己想要输入的时间
# 随便选一种方法移除或者关闭web端时间控件的readonly属性
js_beginDate = "$('input[id=beginDate]').removeAttr('readonly')"
driver.execute_script(js_beginDate)
# 清除时间控件原有显示文本
driver.find_element_by_id('beginDate').clear()
# send_keys输入自己想要输入的时间
driver.find_element_by_id('beginDate').send_keys('2020-07-07 00:00:00')
# 同理
js_endDate = "$('input[id=endDate]').removeAttr('readonly')"
driver.execute_script(js_endDate)
driver.find_element_by_id('endDate').clear()
driver.find_element_by_id('endDate').send_keys('2020-07-07 23:59:59')
原文链接:https://blog.csdn.net/JQ/article/details/107194859
9:Select下拉框
参考文章
https://www.cnblogs.com/yhms/p/11788936.html
一、selenium 提供了 Select 模块,select提供了3种方法定位下拉框元素:
from selenium.webdriver.support.select import Select
select_by_index(index)
select_by_value(value)
select_by_visible_text(text)
二、查看当前下拉框选择的值
Select(s).first_selected_option.text:取出下拉框当前选择的内容
10:打开一个pdf的网址,下载pdf文件
打印预览
参考文章:https://www.cnblogs.com/rainbow-tan/p/17384883.html
1:重点:配置
2:点开网址
#点击按钮-直接打印
utils.get_element(self, ‘xpath’, ‘//div/a[text()=“打印预览”]’).click()
sleep(2)
11:pyqt5中selenium打不开浏览器
pyqt5中selenium找不到chromedriver的路径
1:cmd -》 where python
2:将下载的chromedriver放进去