selenium操作页面:在一个A网页中有按钮,点击后,会新建一个B页面,接下来所有的webdriver操作要全部在B页面中。
A页面中,点击“去签到”后,跳转到B页面。
A:
B:
代码如下:
#点击“去签到”
Go_sign = WebDriverWait(xd_driver, 5).until(EC.element_to_be_clickable((By.XPATH, '//a[contains(text(), "去签到")]'))
)
Go_sign.click()
time.sleep(5)windows=xd_driver.window_handles
#转到新页面中操作,此时[1]就是指第二个页面
xd_driver.switch_to.window(windows[1])
time.sleep(1)
记录下:第一个打开网页一直是句柄0,而最新(也就是最后)打开的网页5记为句柄1。 任何句柄网页关闭后,其他网页句柄号不变,可以直接输入原有句柄进行网页操作。
之后所有的操作,都是针对B页面的了。针对新开页面的操作,参考这篇好文:Selenium如何操作及关闭新打开的标签页网页-百度经验
接下来讲使用execute_script执行js代码获取页面元素,在B页面中,需要点击的元素见红框。
B页面中,需要点击的“领XX”的链接如上图所示,利用js可以获取元素。现在selenium用 execute_script来执行这段获取元素的js代码。
js='return document.getElementById("sign");'
Get_bean=xd_driver.execute_script(js)
Get_bean.click()