python+selenium——详解介绍Selenium常用API的使用--python语言(完整版)

参考:http://www.51testing.com/html/03/n-3725703-2.html

from selenium import webdriver

driver = webdriver.Firefox() # 指定浏览器驱动 #对象实例化

--------------------------------------------------------------------------

url1=‘https://www.baidu.com‘ #需要打开的网址

driver.get(url1) #driver.get("https://www.baidu.com")

===========================================================================================================================元素定位

页面元素定位,8种常用定位方法:

driver.find_element_by_id()

driver.find_element_by_name()

driver.find_element_by_class_name()

driver.find_element_by_tag_name()

driver.find_element_by_link_text()

driver.find_element_by_partial_link_text()

driver.find_element_by_xpath()

driver.find_element_by_css_selector()

============================================================================================================================

from selenium.webdriver.common.by import By #需要引入包

driver.find_element(By.ID,"kw")

driver.
find_element(By.NAME,"wd")

driver.find_element(By.CLASS_NAME,"bg")

driver.find_element(By.TAG_NAME,"input")

driver.find_element(By.LINK_TEXT,"新闻")

driver.find_element(By.XPATH,"//*[@id=‘idname‘]")

driver.find_element(By.CSS_SELECTOR,"span>input#su")

============================================================================================================================

定位一组元素,WebDriver 还提供了与之对应的 8 种定位方法用于定位一组元素:

driver.find_elements_by_id()

driver.find_elements_by_name()

driver.find_elements_by_class_name()

driver.find_elements_by_tag_name()

driver.find_elements_by_link_text()

driver.find_elements_by_partial_link_text()

driver.find_elements_by_xpath()

driver.find_elements_by_css_selector()

定位一组对象的方法与定位单个对象的方法类似,唯一的区别是在单词 element 后面多了一个 s 表示复数。

定位一组对象一般用于以下场景:批量操作对象,比如将页面所有的复选框都被勾选。

   先获取一组对象,再在这组对象中过滤出需要具体定位的一些对象。

from selenium import webdriver
from time import sleep
from selenium.webdriver.common.by import By

driver = webdriver.Firefox()

driver.get("http://www.baidu.com")

sleep(5)

x = driver.find_elements(By.CLASS_NAME,"mnav")

for fac in x:
print(fac.text)

driver.close()

-----------------------------------------------------------

抗击肺炎

新闻

hao123

地图

视频

贴吧

学术

===========================================================================================================================

webelement对象是selenium中所有元素的父类,也就是webelement对象拥有的方法,其它元素对象都会有;

只是不同的对象在调用特定方法时,效果是不一样的,即:某些方法只是针对特定元素类型有效,而对其它类型无效。

(1)、clear:清空文本框中的文本,仅仅对有文本输入特性的元素有效;例如:文本框、多行文本框等;

(2)、click:单击元素,可以通过该方法,让元素获取焦点;

(3)、find_element系列:查找子元素的方法,同浏览器的find_element系列方法相同;

(4)、get_attribute:获取当前元素的特定属性值,如 name、style等;

(5)、id:表示当前元素在selenium中的唯一标识;

(6)、is_displayed:当前元素是否可见;

(7)、is_enabled:当前元素是否可用;

(8)、is_selected:当前元素是否被选中,通常在checkbox、radiobox、select option等元素上;

(9)、location:返回当前元素的左上角坐标X、Y的位置,即在当前页面中的绝对位置坐标;

(10)、location_once_scrolled_into_view:返回当前元素第一次滚动到可视区域时的左上角坐标X、Y的位置,

使用此方法可以把不在可视区域的元素,滚动到可视区域;

(11)、parent:返回WebDriver对象;

(12)、rect:返回当前元素左上角坐标X、Y值,以及该元素的宽和高,即该元素的显示区域;

(13)、send_keys:向当前元素发送字符串内容,仅仅对可输入web元素有效,如文本框、文本区域等;

(14)、size:获取当前元素的宽和高;

(15)、submit:提交当前元素所在的form表单,相当于单击所在form表单内的submit;

(16)、tag_name:获取当前元素的tag name内容,如文本框的值为input;

(17)、text:获取当前元素的inneerText值,即元素开始标签和结束标签之间的文本内容;

(18)、value_of_css_property:获取当前元素的css属性,如获取color的属性值;

driver = webdriver.Firefox()

driver.get("http://www.baidu.com")

driver.find_element_by_id("kw").clear() #文本框清空

driver.find_element_by_id("kw").send_keys() #文本框输入

driver.find_element_by_id("su").click() #点击

driver.find_element_by_id("su").submit() #提交

----------------------------------------------------------------------------------------------------------------------------------------------------

# http://www.baidu.com 首页html源代码
#
# 输入框: <input id="kw" name="wd" class="s_ipt" value="" maxlength="255" autocomplete="off">
#
# 确定按钮: <input type="submit" id="su" value="百度一下" class="bg s_btn">

print(driver.find_element_by_id(‘kw‘).tag_name) # input

print(driver.find_element_by_id(‘kw‘).get_attribute(‘name‘)) # wd

print(driver.find_element_by_id(‘kw‘).get_attribute(‘id‘)) # kw

print(driver.find_element_by_id(‘kw‘).get_attribute(‘class‘)) # s_ipt

print(driver.find_element_by_id(‘kw‘).get_attribute(‘value‘)) # 中国

print(driver.find_element_by_id(‘kw‘).parent) # <selenium.webdriver.firefox.webdriver.WebDriver (session="ec5c73e4-93ce-4e0a-b74a-26b49b175fda")>

-------------------------------------------------------------------------------------------------------------------------------------------------------

print(driver.find_element_by_id(‘kw‘).location) #{‘x‘: 129, ‘y‘: 18}返回当前元素的左上角坐标X、Y的位置,即在当前页面中的绝对位置坐标 #返回X、Y

print(driver.find_element_by_id(‘kw‘).size) #{‘height‘: 22.0, ‘width‘: 494.0} 获取当前元素的宽和高 #返回宽和高

print(driver.find_element_by_id(‘kw‘).rect) #{‘x‘: 129.0, ‘y‘: 18.0, ‘width‘: 494.0, ‘height‘: 22.0} 返回当前元素左上角坐标X、Y值,以及该元素的宽和高,

即该元素的显示区域; #返回X、Y,宽和高,即可视区域

print(driver.find_element_by_id(‘kw‘).value_of_css_property(‘color‘)) # rgb(0, 0, 0) #获取当前元素的css属性,如获取color的属性值

===========================================================================================================================键盘引入

from selenium.webdriver.common.keys import Keys #键盘导入类

------------------------------------------------------------------------------

常用的键盘操作:

send_keys(Keys.BACK_SPACE):删除键(BackSpace)

send_keys(Keys.SPACE):空格键(Space)

send_keys(Keys.TAB):制表键(TAB)

send_keys(Keys.ESCAPE):回退键(ESCAPE)

send_keys(Keys.ENTER):回车键(ENTER)

send_keys(Keys.CONTROL,‘a‘):全选(Ctrl+A)

send_keys(Keys.CONTROL,‘c‘):复制(Ctrl+C)

send_keys(Keys.CONTROL,‘x‘):剪切(Ctrl+X)

send_keys(Keys.CONTROL,‘v‘):粘贴(Ctrl+V)

send_keys(Keys.F1):键盘F1

.....

send_keys(Keys.F12):键盘F12

-------------------------------------------------------------------------------------------------------------------------

from selenium import webdriver
from selenium.webdriver.common.keys import Keys #键盘导入类
from time import sleep

driver = webdriver.Firefox() # 指定和打开浏览器

driver.get(‘http://www.baidu.com‘)

driver.find_element_by_id(‘kw‘).send_keys(‘seleniumm‘) #在输入框输入内容

sleep(4)

driver.find_element_by_id(‘kw‘).send_keys(Keys.BACK_SPACE) #删除键 #删除多输入的一个字

sleep(4)

driver.find_element_by_id(‘kw‘).click()

driver.find_element_by_id(‘kw‘).send_keys(Keys.SPACE) # 输入空格键

sleep(4)

driver.find_element_by_id(‘kw‘).send_keys(Keys.CONTROL, ‘a‘) #输入Control+a模拟全选

driver.find_element_by_id(‘kw‘).send_keys(Keys.CONTROL, ‘c‘) #输入Control+c模拟复制

driver.find_element_by_id(‘kw‘).click() #单击之后鼠标焦点就在文字后面了,不然还在文字上,粘贴就会直接覆盖文字

driver.find_element_by_id(‘kw‘).send_keys(Keys.CONTROL, ‘v‘) #输入Control+v模拟粘贴

sleep(8)

driver.find_element_by_id(‘kw‘).send_keys(Keys.ENTER) #回车键

sleep(5)

driver.close()

===========================================================================================================================鼠标引入

from selenium.webdriver.common.action_chains import ActionChains #导入鼠标相关的包

--------------------------------------------------------------------------------------------

submit = driver.find_element_by_id(‘kw‘) #首先创建对象

ActionChains(driver).click(submit).perform() #左键

ActionChains(driver).context_click(submit).perform() #右键

ActionChains(driver).double_click(submit).perform() #双击

----------------------------------------------------------------------------------------------------------------------

ActionChains(driver).drag_and_drop_by_offset(submit,10,10).perform() #拖放到指定坐标位置

ActionChains(driver).drag_and_drop(submit,target).perform() #拖放到目标元素位置 #target也是创建的一个对象

--------------------------------------------------------------------------------------------

ActionChains(driver).move_by_offset(10,10).perform() #鼠标在指定坐标悬停

ActionChains(driver).move_to_element(submit).perform() #鼠标在指定元素悬停

ActionChains(driver).move_to_element_with_offset(submit,5,5).perform() #鼠标在指定元素的指定坐标悬停

---------------------------------------------------------------------------------------------------------

ActionChains(driver).click_and_hold(submit).perform() #鼠标左键元素并保持

ActionChains(driver).context_click(submit).perform() #鼠标右键元素并保持

-----------------------------------------------------------------------------------------------

ActionChains(driver).key_down(Keys.CONTROL).send_keys(‘a‘).key_up(Keys.CONTROL).perform() #ctrl+a全选组合键

ActionChains(driver).key_down(Keys.CONTROL).send_keys(‘c‘).key_up(Keys.CONTROL).perform() #ctrl+c 复制组合键

ActionChains(driver).key_down(Keys.CONTROL).send_keys(‘v‘).key_up(Keys.CONTROL).perform() #ctrl+v 粘贴组合键

================================================================================================

from selenium import webdriver
from selenium.webdriver.common.keys import Keys #导入键盘相关的包
from selenium.webdriver.common.action_chains import ActionChains #导入鼠标相关的包
from time import sleep

driver = webdriver.Firefox() # 指定和打开浏览器

driver.get(‘http://www.baidu.com‘)

#driver.find_element_by_id(‘kw‘).send_keys(‘中国‘)

#sleep(4)

#submit = driver.find_element_by_id(‘su‘)

#ActionChains(driver).click(submit).perform() #对搜索按钮 鼠标左点击

#sleep(4)

#------------------------------------------------------------------------------------------

#submit = driver.find_element_by_link_text("设置")

#ActionChains(driver).move_to_element(submit).perform() #鼠标悬停在上面

#sleep(5)

#driver.find_element_by_class_name("setpref").click() # 打开搜索设置

#sleep(2)

#-----------------------------------------------------------------------------------------

location01 = driver.find_element_by_link_text(‘新闻‘) # 鼠标拖动事件

sleep(7)

location02 = driver.find_element_by_link_text(‘更多产品‘)

ActionChains(driver).drag_and_drop(location01, location02).perform()

sleep(8)

driver.close()

=============================================================================================

from selenium import webdriver
from selenium.webdriver.common.keys import Keys #导入键盘相关的包
from selenium.webdriver.common.action_chains import ActionChains #导入鼠标相关的包
from time import sleep

driver = webdriver.Firefox() # 指定和打开浏览器

driver.get(‘http://www.baidu.com‘)

driver.find_element_by_id(‘kw‘).send_keys(‘中国‘)

sleep(4)

driver.find_element_by_id(‘kw‘).click()

ActionChains(driver).key_down(Keys.CONTROL).send_keys(‘a‘).key_up(Keys.CONTROL).perform() #全选

sleep(4)

ActionChains(driver).key_down(Keys.CONTROL).send_keys(‘c‘).key_up(Keys.CONTROL).perform() #复制、拷贝

sleep(4)

driver.find_element_by_id(‘kw‘).click()

ActionChains(driver).key_down(Keys.CONTROL).send_keys(‘v‘).key_up(Keys.CONTROL).perform() #粘贴

sleep(8)

driver.close()

===========================================================================================================================时间引入

from time import sleep

sleep(15)

===========================================================================================================================driver常用方法

from selenium import webdriver

driver = webdriver.Firefox() # 指定浏览器驱动 #对象实例化

调用说明

driver.属性值

变量说明:

1.driver.current_url:用于获得当前页面的URL

2.driver.title:用于获取当前页面的标题

3.driver.page_source:用于获取页面html源代码

4.driver.current_window_handle:用于获取当前窗口句柄

5.driver.window_handles:用于获取所有窗口句柄

函数说明:

1.driver.find_element*():定位元素,

2.driver.get(url):浏览器加载url。 实例:driver.get("http//:www.baidu.com")

3.driver.forward():浏览器向前(点击向前按钮)。

4.driver.back():浏览器向后(点击向后按钮)。

5.driver.refresh():浏览器刷新(点击刷新按钮)。

6.driver.close():关闭当前窗口,或最后打开的窗口。

7.driver.quit():关闭所有关联窗口,并且安全关闭session。

8.driver.maximize_window():最大化浏览器窗口。

9.driver.set_window_size(宽,高):设置浏览器窗口大小。 driver.set_window_size(400,200) #设置浏览器的宽度和高度 {‘width‘: 1382, ‘height‘: 744}

10.driver.get_window_size():获取当前窗口的长和宽。

11.driver.set_window_position(X,Y) #设置浏览器左上角坐标的X,Y值 driver.set_window_position(100,200) {‘x‘: -8, ‘y‘: -8}

12.driver.get_window_position():获取当前窗口坐标。

13.driver.get_screenshot_as_file(filename):截取当前窗口。

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++切换窗口

14.driver.current_window_handle #获取当前窗口句柄

15.driver.window_handles #用于获取所有窗口句柄

--------------------------------------------------------------------------------

suoyou = driver.window_handles # 用于获取所有窗口句柄

16.driver.switch_to.window(suoyou[0]) #切换到第一个句柄

driver.switch_to.window(suoyou[1]) #切换到第二个句柄

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++切换frame

17.driver.switch_to.frame() #切换frame

18.driver.switch_to.default_content() #切换到主页面 #从frame中切回主文档

19.driver.switch_to.parent_frame() #这是switch_to中独有的方法,可以切换到上一层的frame,对于层层嵌套的frame很有用

#driver.switch_to.frame(driver.find_elements_by_tag_name("iframe")[0]) #复数,定位一组iframe的第一个

driver.switch_to.frame(driver.find_element_by_tag_name("iframe")) #因为只有一个iframe,这个也可以用

element = driver.switch_to.active_element 定位到当前聚焦的元素上

ele_box = driver.switch_to.active_element # 通过定位输当前焦点元素,并再次输入数据

ele_box.send_keys("12345sdfgh")

driver.switch_to.frame(‘frame_name‘) #name来点位

driver.switch_to.frame(1) #id来定位

driver.switch_to.frame(driver.find_elements_by_tag_name("iframe")[0]) #用webelement对象来定位,先获取对象

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++alert弹出框

from selenium.webdriver.common.alert import Alert

driver.find_element_by_id(‘alert_button‘).click() #点击触发弹出框alert
alt = Alert(driver)

alt.accept() : 等同于单击“确认”或者“OK”

alt.dismiss() : 等同于单击“取消”或者“Cancel”

alt.send_keys() : 发送文本,针对有提交需求的prompt框

alt.text() : 获取alert文本的内容

alt.authenticate(username,password) : 验证,针对需要身份验证的alert

————————————————————————————————————————————————————

首先使用switch_to.alert()方法进行定位,然后可以使用下面的操作

text:返回alert、confirm、prompt中的文字信息;

accept():接受现有警告框;

dismiss():解散现有警告框;

send_keys():在警告框中输入文本(如果可以输入的话);

20.driver.switch_to.alert.text #获取alert文本框里面的文字

21.driver.switch_to.alert.dismiss() #点击取消按钮

22.driver.switch_to.alert.accept() #点击确定按钮

23.driver.switch_to.alert.send_keys() #在警告框中输入文本(如果可以输入的话)

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++调用js语句

有些浏览器的页面操作,不能依靠WebDriver提供的API来操作,需要借助JavaScript脚本。

webdriver提供了execute_script()方法来执行JavaScript代码。

24.driver.execute_script(js) #调用/执行js语句的方法。

js = ‘window.scrollTo(100,400);‘ #设置浏览器窗口滚动条的水牌位置和垂直位置

========================================================================================================================================cookie

WebDriver提供了操作Cookie的相关方法,可以读取、添加和删除cookie信息。

WebDriver操作cookie的方法:

25.driver.get_cookies(): 获得所有cookie信息。

26.driver.get_cookie(name): 返回字典的key为“name”的cookie信息。

27.driver.add_cookie(cookie_dict) : 添加cookie。“cookie_dict”指字典对象,必须有name 和value 值。

28.driver.delete_cookie(name,optionsString):删除cookie信息。“name”是要删除的cookie的名称,“optionsString”是该cookie的选项,目前支持的选项包括“路径”,“域”。

29.driver.delete_all_cookies(): 删除所有cookie信息。

======================================================================================================================================

from selenium import webdriver
from time import sleep

driver = webdriver.Firefox() # 指定和打开浏览器

url1=‘http://www.baidu.com‘

print(‘==============================================================================1‘)

driver.delete_all_cookies() #先删除所有cookie

print(driver.get_cookies()) #打印所有cookie

print(‘==============================================================================2‘)

driver.get(url1) #打开第一个网址 #也可以写成:driver.get(‘http://www.baidu.com‘)

sleep(5)

print(driver.get_cookies()) #打印获取到的所有cookie

print(‘==============================================================================3‘)

driver.add_cookie({‘name‘:‘kw‘,‘value‘:‘selenium‘}) #添加一个name为kw,内容为selenium的cookie

print(driver.get_cookie(‘kw‘)) #获取名为kw的cookie

print(driver.get_cookie(‘PSTM‘))

print(‘==============================================================================4‘)

print(driver.get_cookies()) #打印获取到的所有cookie

print(‘==============================================================================5‘)

driver.delete_cookie(‘kw‘) #删除名为kw的cookie

print(driver.get_cookies()) #打印获取到的所有cookie

print(‘==============================================================================6‘)

driver.delete_all_cookies() #删除所有cookie

print(driver.get_cookies()) #打印获取到的所有cookie

print(‘==============================================================================7‘)

print(driver.session_id)

driver.quit() #关闭浏览器 或者:driver.close()

=============================================================================================================================================
=============================================================================================================================================
=============================================================================================================================================
=============================================================================================================================================

注意:新建文件夹这个目录已经存在的前提下:

driver.get_screenshot_as_file(‘C:\\Users\\del\\Desktop\\新建文件夹\\‘+ picture_time +‘.png‘) #保存于桌面已经存在的新建文件夹里:2020-02-15-19-18-38.png

driver.get_screenshot_as_file(‘C:\\Users\\del\\Desktop\\新建文件夹\\‘+ picture_time2 +‘.png‘) #日期作为文件名:2020-02-15.png

driver.get_screenshot_as_file(‘C:\\Users\\del\\Desktop\\新建文件夹\\‘+ picture_time3 +‘.png‘) #时分秒作为文件名:19-18-38.png

============================================================================================================================================================

格式化时间:

import time

picture_time = time.strftime("%Y-%m-%d-%H-%M-%S", time.localtime(time.time()))

print(picture_time) # 2020-02-15-19-18-38

#--------------------------------------------------------------------------------

picture_time2 = time.strftime("%Y-%m-%d", time.localtime(time.time()))

print(picture_time2) # 2020-02-15

#--------------------------------------------------------------------------------

picture_time3 = time.strftime("%H-%M-%S", time.localtime(time.time()))

print(picture_time3) # 19-18-38

=======================================================================================================================================================

原文地址:https://www.cnblogs.com/xiaobaibailongma/p/12329287.html

时间: 2024-07-29 01:44:51

python+selenium——详解介绍Selenium常用API的使用--python语言(完整版)的相关文章

详解介绍Selenium常用API的使用--Java语言(完整版)

一共分为二十个部分:环境安装之Java.环境安装之IntelliJ IDEA.环境安装之selenium.selenium3浏览器驱动.selenium元素定位.控制浏览器操作.WebDriver常用方法.模拟鼠标操作.模拟键盘操作.获取断言信息.设置元素等待.定位一组元素.多表单切换.多窗口切换.下拉框选择.警告框处理.文件上传.浏览器cookie操作.调用JavaScript代码.获取窗口截屏: 虽然,学习Maven需要增加你的学习成本,但如果你需要长期使用Java编程语言,或者想用Java

python正则表达式详解

python正则表达式详解 正则表达式是一个很强大的字符串处理工具,几乎任何关于字符串的操作都可以使用正则表达式来完成,作为一个爬虫工作者,每天和字符串打交道,正则表达式更是不可或缺的技能,正则表达式的在不同的语言中使用方式可能不一样,不过只要学会了任意一门语言的正则表达式用法,其他语言中大部分也只是换了个函数的名称而已,本质都是一样的.下面,我来介绍一下python中的正则表达式是怎么使用的. 首先,python中的正则表达式大致分为以下几部分: 元字符 模式 函数 re 内置对象用法 分组用

iOS:核心动画的详解介绍:CAAnimation(抽象类)及其子类

核心动画的详解介绍:CAAnimation(抽象类) 1.核心动画基本概念 Core Animation是一组非常强大的动画处理API,使用它能做出非常炫丽的动画效果,而且往往是事半功倍! 使用它需要先添加QuartzCore.framework和引入对应的框架<QuartzCore/QuartzCore.h> ,在iOS7中不需要 2.动画分类 基本动画    CABasicAnimation 关键帧动画  CAKeyframeAnimation 动画组     CAAnimationGro

&lt;转&gt;详解DNS的常用记录(上):DNS系列之二

详解DNS的常用记录(上) 在上篇博文中,我们介绍了DNS服务器的体系结构,从中我们了解到如果我们希望注册一个域名,那么必须经过顶级域名服务器或其下级的域名服务器为我们申请的域名进行委派,把解析权委派到我们的DNS服务器上,这样我们才可以获得对所申请域名的解析权.本文中我们将再进一步,假设我们已经为公司成功申请了一个域名hexun.com,现在hexun.com的解析权被委派到公司的DNS服务器202.99.16.1,那我们在202.99.16.1服务器上该进行什么样的配置呢? 一 安装DNS服

SNMP和rrdtool详解介绍

snmp全称simple network manage protocol,snmp能够通过简单的命令获取远程主机上的服务状况,以实现对远程服务的监控.snmp至今经历了3个版本,snmpv1,snmpv2,snmpv3.snmp简单工作原理就是监控端的一台主机向被监控端的一台主机发出命令,被检控端的主机在本机上安装服务能够识别到监控端主机发过来的命令并给予反馈信息.由于这种监控的局限性,保证被监控端的主机只识别指定主机发来的监控信息,双方需要建立识别的信息,这就是communite的作用.在sn

S?D?I?与?A?S?I 接口详解介绍

分量编码 在对彩色电视信号进行数字化处理和传输是,一种常用的方式是分别对其3个分量(Y,R-Y,B-Y)进行数字化编码.这就是分量分量编码,另外还有全信号编码,全信号编码是对彩色全电视信号直接进行编码形成数字视频信号.它的抽样频率一般采用fs=4fsc,这样对NTSC制和PAL制信号形成便于进行行间,场间,帧间的信号的正交抽样结构. 1. 抽样频率 当亮度信号Y的带宽为5.8MHz~6MHz,两个色差信号(R-Y)和(B-Y)的带宽均为2MHz是,可以获得满意的带宽. 2. 电视演播室分量编码国

UITabBarController详解(介绍和设置)

[objc] view plaincopy - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; // Override point for customization af

详解ASP.NET Core API 的Get和Post请求使用方式

原文:详解ASP.NET Core API 的Get和Post请求使用方式 上一篇文章帮助大家解决问题不彻底导致博友使用的时候还是遇到一些问题,欢迎一起讨论.所以下面重点详细讲解我们常用的Get和Post请求( 以.net core2.2的Http[Verb]为方向 ,推荐该属性路由),如果想验证,直接利用VS2017创建ASP.NET Core API (.net core 2.2),在DefaultController里面操作.文中有些关键字,我是加了粗的,请注意一下. 帮助回忆,Get和P

Python数据类型详解——列表

Python数据类型详解--列表 在"Python之基本数据类型概览"一节中,大概介绍了列表的基本用法,本节我们详细学一下列表. 如何定义列表:在[]内以英文里输入法的逗号,,按照索引,存放各种数据类型,每个位置代表一个元素. 回顾一下列表的特点: 1.可存放多个值. 2.按照从左到右的顺序定义列表元素,下标从0开始顺序访问,是有序的. 3.可修改指定索引位置对应的值,可变. 一.列表元素的增加操作 1.追加 用append方法将数据追加到列表的尾部 names = ['Kwan',