1、判断元素是否显示
is_displayed()
presence_of_element_located: 当我们不关心元素是否可见,只关心元素是否存在在页面中。
visibility_of_element_located: 当我们需要找到元素,并且该元素也可见
2、使用其他元素进行定位,且隐形等待
isinvoice = WebDriverWait(currentDr,5).until(lambda x:x.find_element_by_css_selector("[value='0']"))
3、鼠标点击事件
actionChains = ActionChains(currentDr)
actionChains.move_to_element(goodsNumEdit).click()
actionChains.move_to_element(addGoodsNumButton).click()
actionChains.perform() #按顺序执行
4、键盘操作
goodsNumEdit.send_keys(Keys.BACK_SPACE)
5、js返回元素的值,如果想获得返回值得加return,要不只是执行了,但是没值返回
js = 'return document.getElementById("orderHeaderId").value;'
orderHeader = currentDr.execute_script(js)
6、切换句柄
currentWindow = currentDr.current_window_handle #获取当前窗口句柄
handles = currentDr.window_handles
1、 for newWindow in handles:
if newWindow != currentWindow:
currentDr.switch_to.window(newWindow)
2、for newWindow in handles:
currentDr.switch_to.window(newWindow) 始终获得当前最后的窗口
3、 currentDr.switch_to.window(windows[-1])
还有 currentDr.switch_to.window(windows[1]) 目前还不太知道与-1 这2者的区别
7、随机
bankCards = WebDriverWait(currentDr,10).until(lambda x:x.find_elements_by_css_selector("[class='01']"))
bankCard =bankCards[random.randint(0,len(bankCards)-1)]
8、清空输入框
self.currentDr.find_element_by_id("username").clear()