Selenium 中 switch_to_default_content() 方法和 switch_to.parent_frame() 方法之间有什么区别?
帧中的 switch_to.parent_frame() 和 switch_to_default_content() 方法之间存在差异。如下列出 −
switch_to_parent_frame()
此方法用于退出当前帧,然后我们可以访问该帧外部而不是内部的元素。因此控制被切换;外部可能是另一帧或网页的一部分。所以我们能够退出当前帧。
语法 −
driver.switch_to.parent_frame();
switch_to_default_content()
此方法用于退出所有帧并在页面上切换焦点。一旦我们退出,它将失去对页面中帧内元素的访问权。
语法 −
driver.switch_to_default_content();
示例
使用 switch_to_default_content() 方法的代码实现。
from selenium import webdriver driver = webdriver.Chrome(executable_path="C:\chromedriver.exe") # to maximize the browser window driver.maximize_window() #get method to launch the URL driver.get("https://the-internet.herokuapp.com") #to refresh the browser driver.refresh() driver.find_element_by_link_text("Frames").click() driver.find_element_by_link_text("Nested Frames").click() # to switch to frame with frame name driver.switch_to.frame("frame-bottom") # to get the text inside the frame and print on console print(driver.find_element_by_xpath ("//*[text()='BOTTOM']").text) # to move out the current frame to the page level driver.switch_to.default_content() #to close the browser driver.quit()
使用 switch_to_parent_frame() 方法的代码实现。
from selenium import webdriver driver = webdriver.Chrome(executable_path="C:\chromedriver.exe") # to maximize the browser window driver.maximize_window() #get method to launch the URL driver.get("https://the-internet.herokuapp.com") #to refresh the browser driver.refresh() driver.find_element_by_link_text("Frames").click() driver.find_element_by_link_text("Nested Frames").click() # to switch to frame with parent frame name driver.switch_to.frame("frame-top") # to switch to frame with frame inside parent frame with name driver.switch_to.frame("frame-left") # to get the text inside the frame and print on console print(driver.find_element_by_xpath ("//*[text()='LEFT']").text) # to move out the current frame to the parent frame driver. switch_to_parent_frame() #to close the browser driver.quit()
广告