当前位置: 首页 > news >正文

北京城乡和住房建设部网站合肥微信网站

北京城乡和住房建设部网站,合肥微信网站,上海门户网站开发,广州网站设计廊坊公司电话1. 定位页面#xff08;多窗口切换#xff09; WebDriver提供了处理多个窗口的能力#xff0c;这是通过使用“WebDriver.switchTo.window()”方法来切换到已知名称的窗口来实现的。如果名称未知#xff0c;您可以使用“WebDriver.getWindowHandles()”获取已知窗口列表。您…1. 定位页面多窗口切换 WebDriver提供了处理多个窗口的能力这是通过使用“WebDriver.switchTo.window()”方法来切换到已知名称的窗口来实现的。如果名称未知您可以使用“WebDriver.getWindowHandles()”获取已知窗口列表。您可以将句柄传递给switchTo.window()。 获取当前窗口句柄 driver.current_window_handle 返回的所有窗口的句柄到当前会话 driver.window_handles 切换窗口可以实现在不同的窗口之间切换。 switch_to.window() 示例代码 # 模拟按下回车键进行搜索 search_box.send_keys(Keys.RETURN) # 等待页面加载 driver.implicitly_wait(15) # 切换新窗口 window_handles driver.window_handles driver.switch_to.window(window_handles[1])2. 定位界面元素 WebDriver中的find_element() 方法用来查找元素并返回 WebElement 对象。其中find_element是直接WebElement 对象find_elements是直接WebElement 对象的列表list也就是多个对象需要注意。 详细内容参考官方文档https://www.selenium.dev/documentation/webdriver/elements/。举例介绍如下 html body style .information {background-color: white;color: black;padding: 8px; } /styleh2Contact Selenium/h2form action/action_page.phpinput typeradio namegender valuem /Male nbsp;input typeradio namegender valuef /Female brbrlabel forfnameFirst name:/labelinput classinformation typetext idfname namefname valueJanebrbrlabel forlnameLast name:/labelinput classinformation typetext idlname namelname valueDoebrbrlabel fornewsletterNewsletter:/labelinput typecheckbox namenewsletter value1 /brbrinput typesubmit valueSubmit /form pTo know more about Selenium, visit the official page a href www.selenium.devSelenium Official Page/a /pdiv idadddiv增加div看看/div/body /html定位方式By说明idBy.ID定位ID属性与搜索值匹配的元素nameBy.NAME定位NAME属性与搜索值匹配的元素class_nameBy.CLASS_NAME定位具有包含搜索值的类名的元素(不允许使用复合类名)tag_nameBy.TAG_NAME定位标签名与搜索值匹配的元素link_textBy.LINK_TEXT定位可见文本与搜索值匹配的锚点元素partial_link_textBy.PARTIAL_LINK_TEXT定位可见文本部分与搜索值匹配的锚点元素css_selectorBy.CSS_SELECTOR定位与CSS选择器匹配的元素xpathBy.XPATH定位与XPath表达式匹配的元素 class name HTML页面的Web元素可以具有class属性。在上面的HTML代码片段中可以看到一个示例。我们可以使用Selenium中的class name定位器来识别这些元素。 driver webdriver.Chrome()driver.find_element(By.CLASS_NAME, information) css selector CSS是用于样式化HTML页面的语言。我们可以使用css selector定位器策略来识别页面上的元素。如果元素具有id,则创建定位器为css #id。否则我们遵循的格式是css [attributevalue]。让我们从上面的HTML代码片段中看一个示例。我们将使用css为First Name文本框创建定位器。 driver.find_element(By.CSS_SELECTOR, #fname)xpath HTML文档可以被视为XML文档然后我们可以使用xpath来定位感兴趣的元素。XPath是从文档的根开始遍历的路径可以是绝对XPath或相对XPath。例如/html/form/input[1]将返回男性单选按钮。或者XPath也可以是相对的例如//input[name‘fname’]将返回名字文本框。让我们使用xpath为女性单选按钮创建定位器。 driver.find_element(By.XPATH, //input[valuef])3. 操作 3.1. 键盘操作 键盘操作是指与网页交互的任何键输入设备的一种表示。使用键盘只能完成两项操作按下一个键和释放按下的键。除了支持ASCII字符外每个键盘按键都有指定的序列来表示可以按下或释放。 例如输入关键字按下回车键搜索。 # 在搜索框中输入关键词search_box.send_keys(selenium)# 模拟按下回车键进行搜索search_box.send_keys(Keys.RETURN)3.2. 鼠标键操作 鼠标操作是指与网页交互的任何指针设备的一种表示。使用鼠标只能完成三项操作按下一个按钮、释放按下的按钮和移动鼠标。Selenium提供了方便的方法将这些动作以最常见的方式组合在一起。 这种方法结合了将鼠标移动到元素的中心并按下和释放鼠标左键的动作否则称为“点击”。 # 模拟用鼠标点击链接操作clickable driver.find_element(By.LINK_TEXT, 哈尔滨)ActionChains(driver).click(clickable ).perform()3.3. 界面加载等待 driver.implicitly_wait(n)n是设置时长单位为秒。 隐性等待设置了一个时间在一段时间内网页是否加载完成如果完成了就进行下一步在设置的时间内没有加载完成则会报超时加载。 另外一点隐性等待的设置是全局性的在开头设置过之后整个的程序运行过程中都会有效都会等待页面加载完成不需要每次设置一遍。 4. 小结 完整代码示例 from selenium import webdriver from selenium.webdriver import Keys, ActionChains from selenium.webdriver.common.by import Bydriver webdriver.Chrome() url https://www.**** driver.get(url) driver.maximize_window()search_box driver.find_element(By.LINK_TEXT, 哈尔滨) ActionChains(driver).click(search_box).perform() driver.implicitly_wait(10)# 获取搜索框元素 search_box driver.find_element(By.ID ,search-input) # 按ID查询# 在搜索框中输入关键词 search_box.send_keys(群力家园(C区)) # 模拟按下回车键进行搜索 search_box.send_keys(Keys.RETURN)# 切换新窗口 window_handles driver.window_handles driver.switch_to.window(window_handles[1]) # 定位详细链接 xpath //*[idesfMain]/section/div/div/a driver.find_element(By.XPATH, xpath).click() # 再切换窗口 window_handles driver.window_handles driver.switch_to.window(window_handles[3]) # 获取详细数据 selector2 #__layout div div.props-main.w-1170 div.props-body div.props-right div.maininfo div.info div search_results2 driver.find_element(By.CSS_SELECTOR, selector2) search_results2.text使用Selenium工具可以模拟人工操作应用完成相应工作以此提高工作效率。从技术角度来看Selenium还是比较容易实现的。 参考 测试界的飘柔. Selenium实现多页面切换. CSDN博客. 2023.07 肖永威. 基于Selenium技术方案的爬虫入门实践. CSDN博客. 2023.08
http://www.hkea.cn/news/14463367/

相关文章:

  • 常州建网站公司大兴手机网站建设
  • 百度网站怎么制作wordpress主题手机端
  • 网站页尾的作用wordpress spotless
  • 专业重庆房产网站建设网站续费通知单
  • 知名营销网站开发商标注册查询流程
  • 免费行业网站源码湖南人文科技学院招生网
  • 自己建公司网站可以嘛qq空间做网站
  • 网站设计制作费用网站开发电脑配置推荐
  • 基础做网站银川建设
  • 做网站商城网站添加备案
  • 东莞网站推广哪里找saas软件
  • 公司需要网站 该怎么做张家港手机网站设计
  • 郑州网站推广公司信息如何远程连接 网站 数据库
  • 双语版网站引导页高台网站建设
  • 从化网站开发做网站和做电脑软件差别大吗
  • 找加工订单的网站花店网站设计
  • 广西建设厅招投标中心网站网站建设费用会计分录
  • 网站二维码怎么制作福田网站建设seo新科
  • 公司网站建设找谁做wordpress 图片 不显示缩略图
  • es网站开发做国学类网站合法吗
  • 装修网站开发思路wordpress 选择语言
  • 电子网站开发专业网站定制流程
  • 织梦系统做网站简单的购物网站源码
  • 常州外贸公司网站建设如何建一个电商平台
  • 网站建设海报素材推广优化网站排名教程
  • 商城网站制作报价网站建设开发软件有哪些方面
  • 嘉定区网站建设手机如何做微电影网站
  • 淘宝客网站都用什么做html怎么做网站
  • 做网站现在什么最赚钱广州网站优化推广
  • 邢台网站建设58昆山做网站需要多少钱