<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[mdtkzc的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/mdtkzc</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; mdtkzc]]></copyright><item><title><![CDATA[【转】浅析Java中synchronized与static synchronized]]></title><link>https://blog.youkuaiyun.com/mdtkzc/article/details/116810161</link><guid>https://blog.youkuaiyun.com/mdtkzc/article/details/116810161</guid><author>mdtkzc</author><pubDate>Fri, 14 May 2021 23:44:58 +0800</pubDate><description><![CDATA[浅析Java中synchronized与static synchronized

    &lt;/h2&gt;
    &lt;div class="postbody"&gt;
        &lt;div id="cnblogs_post_body" class="blogpost-body cnblogs-markdown"&gt;

synchronized关键字
synchronized是进行同步处理而保证线程安全。在一个方法中，如果是方法内的私有变...]]></description><category></category></item><item><title><![CDATA[【Appuim实战】Error: java.lang.SecurityException问题排查]]></title><link>https://blog.youkuaiyun.com/mdtkzc/article/details/116460246</link><guid>https://blog.youkuaiyun.com/mdtkzc/article/details/116460246</guid><author>mdtkzc</author><pubDate>Thu, 06 May 2021 18:36:47 +0800</pubDate><description><![CDATA[报错信息：Error: java.lang.SecurityException: PID 21457 does not have permission android.permission.CLEAR_APP_USER_DATA to clear data of package com.android.chrome'

原因分析：

权限不够，要开启【开发者选项】-【USB调试（安全设置）】，启动该设置后，允许外部模拟和修改手机应用。小米手机开发该设置前，需登录小米账号。
...]]></description><category></category></item><item><title><![CDATA[【Appuim实战】MaxRetryError问题排查]]></title><link>https://blog.youkuaiyun.com/mdtkzc/article/details/116460199</link><guid>https://blog.youkuaiyun.com/mdtkzc/article/details/116460199</guid><author>mdtkzc</author><pubDate>Thu, 06 May 2021 18:35:30 +0800</pubDate><description><![CDATA[报错信息：MaxRetryError: HTTPConnectionPool(host='127.0.0.1', port=4723): Max retries exceeded with url: /wd/hub/session (Caused by NewConnectionError……))

原因分析：

Appuim server没有启动。
]]></description><category></category></item><item><title><![CDATA[【Appium实战】如何使用mumu模拟器模拟安卓手机]]></title><link>https://blog.youkuaiyun.com/mdtkzc/article/details/116460161</link><guid>https://blog.youkuaiyun.com/mdtkzc/article/details/116460161</guid><author>mdtkzc</author><pubDate>Thu, 06 May 2021 18:33:24 +0800</pubDate><description><![CDATA[1）下载Mumu模拟器（就是网易那一款专门用来在电脑上打手机游戏的安卓模拟器）

2）运行Mumu模拟器

3）在Mumu的安装目录下找到adb_server.exe，路径如下：





4）CMD上 执行 adb connect 127.0.0.1:7555

5）CMD上 执行 adb devices 就会发现Mumu模拟器了



同时，在androidStudio里面也会发现下图所示的Mumu：






...]]></description><category></category></item><item><title><![CDATA[【python实战】中文乱码问题]]></title><link>https://blog.youkuaiyun.com/mdtkzc/article/details/116460091</link><guid>https://blog.youkuaiyun.com/mdtkzc/article/details/116460091</guid><author>mdtkzc</author><pubDate>Thu, 06 May 2021 18:27:23 +0800</pubDate><description><![CDATA[#coding:utf-8—— 指明文档编码方式

temp = input(u"请输入要转换的温度：")—— 中文字符串前加u，指明字符串编码方式
]]></description><category></category></item><item><title><![CDATA[【selenium实战】当找到元素，但点击无效时，常见解决步骤]]></title><link>https://blog.youkuaiyun.com/mdtkzc/article/details/116459909</link><guid>https://blog.youkuaiyun.com/mdtkzc/article/details/116459909</guid><author>mdtkzc</author><pubDate>Thu, 06 May 2021 18:23:28 +0800</pubDate><description><![CDATA[在WEB自动化测试过程中，经常会遇到这样的问题：

元素定位到了，但是点击无效？有人可能会问了，怎么判断元素定位到了，这个问题很好判断，给元素加高亮显示：

self.driver.execute_script(

"arguments[0].setAttribute('style', arguments[1]);",

element,

"border: 2px solid red;" #边框border:2px; ...]]></description><category></category></item><item><title><![CDATA[【selenium实战】python模块以及导入出现ImportError: No module named ‘xxx‘问题]]></title><link>https://blog.youkuaiyun.com/mdtkzc/article/details/116459778</link><guid>https://blog.youkuaiyun.com/mdtkzc/article/details/116459778</guid><author>mdtkzc</author><pubDate>Thu, 06 May 2021 18:17:46 +0800</pubDate><description><![CDATA[遇到该报错的时候，查找问题的思路

（1）是否在需要导入的包中新建了 __init__.py 空文件

python中，每个py文件被称之为模块，每个具有init.py文件的目录被称为包。只要模块或者包所在的目录在sys.path中，就可以使用import 模块或import 包来使用。

（2）该模块或包的目录是否在sys.path中

验证方式
import sysprint(sys.path)

如果不在，则将该模块或包加入到sys.path中。加入的方式有：

1）在调用文件中添加sys.path.]]></description><category></category></item><item><title><![CDATA[【selenium实战】运行python脚本，浏览器一闪而过的可能原因]]></title><link>https://blog.youkuaiyun.com/mdtkzc/article/details/116397546</link><guid>https://blog.youkuaiyun.com/mdtkzc/article/details/116397546</guid><author>mdtkzc</author><pubDate>Tue, 04 May 2021 10:24:55 +0800</pubDate><description><![CDATA[如果运行python脚本，浏览器出现一闪而过，可能是当前driver驱动文件跟当前浏览器版本不匹配。
]]></description><category></category></item><item><title><![CDATA[【selenium实战】查找元素之前，一定要分析UI代码，并进行适当的窗口切换]]></title><link>https://blog.youkuaiyun.com/mdtkzc/article/details/116397436</link><guid>https://blog.youkuaiyun.com/mdtkzc/article/details/116397436</guid><author>mdtkzc</author><pubDate>Tue, 04 May 2021 10:23:20 +0800</pubDate><description><![CDATA[如点击按钮后有新窗口弹出，一定要先切换到新窗口，再对新窗口上面的元素进行操作。

Iframe也类似，先检查是否嵌套在iframe里面，如是，先切换到iframe再进行元素操作，并且一定要记得切出来。
...]]></description><category></category></item><item><title><![CDATA[【selenium实战】多窗口切换]]></title><link>https://blog.youkuaiyun.com/mdtkzc/article/details/116397289</link><guid>https://blog.youkuaiyun.com/mdtkzc/article/details/116397289</guid><author>mdtkzc</author><pubDate>Tue, 04 May 2021 10:18:23 +0800</pubDate><description><![CDATA[windowpage title和window name是不一样的，实际上Window Name 是一长串数字，类似“59790103-4e06-4433-97a9-b6e519a84fd0”。

要正确切换到windowpage title为"Content Display"的方法是：

1. 获得当前所有的WindowHandles。

2. 循环遍历到所有的window, 查找window.title与"Content Display"相符的window返回。


...]]></description><category></category></item><item><title><![CDATA[【转载】在线编程——排序算法总结]]></title><link>https://blog.youkuaiyun.com/mdtkzc/article/details/116382480</link><guid>https://blog.youkuaiyun.com/mdtkzc/article/details/116382480</guid><author>mdtkzc</author><pubDate>Tue, 04 May 2021 00:21:18 +0800</pubDate><description><![CDATA[&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;在线编程——排序算法总结 
 【转载】原文链接：https://geekzw.blog.youkuaiyun.com/article/details/80419920...]]></description><category></category></item><item><title><![CDATA[《Effective C++》读书笔记VI]]></title><link>https://blog.youkuaiyun.com/mdtkzc/article/details/49883165</link><guid>https://blog.youkuaiyun.com/mdtkzc/article/details/49883165</guid><author>mdtkzc</author><pubDate>Tue, 17 Nov 2015 09:28:22 +0800</pubDate><description><![CDATA[模板与泛型编程（Templates and Generic Programming）
模板元编程（Template metaprogramming）：在C++编译器内执行并于编译完成时停止执行的程序。
条款41：了解隐式接口和编译器多态（Understand implicit Interface and compile-time polymorphism.）
面向对象编程世界总是以显示接口（]]></description><category></category></item><item><title><![CDATA[《Effective C++》读书笔记V]]></title><link>https://blog.youkuaiyun.com/mdtkzc/article/details/49883139</link><guid>https://blog.youkuaiyun.com/mdtkzc/article/details/49883139</guid><author>mdtkzc</author><pubDate>Tue, 17 Nov 2015 09:26:40 +0800</pubDate><description><![CDATA[实现
条款26：尽可能延后变量定义式的出现时间（Postpone variable definitions as long as possible.）
1）“尽可能延后”的真正意义：不只应该延后变量的定义，直到非得使用该变量的前一刻为止，甚至应该尝试延后这份定义直到能够给它初值实参为止。
 
条款27：尽量少做转型动作（Minimize casting.）
1）C风格的转型（旧式转型，o]]></description><category></category></item><item><title><![CDATA[《Effective C++》读书笔记IV]]></title><link>https://blog.youkuaiyun.com/mdtkzc/article/details/49883115</link><guid>https://blog.youkuaiyun.com/mdtkzc/article/details/49883115</guid><author>mdtkzc</author><pubDate>Tue, 17 Nov 2015 09:24:52 +0800</pubDate><description><![CDATA[实现
条款26：尽可能延后变量定义式的出现时间（Postpone variable definitions as long as possible.）
1）“尽可能延后”的真正意义：不只应该延后变量的定义，直到非得使用该变量的前一刻为止，甚至应该尝试延后这份定义直到能够给它初值实参为止。
 
条款27：尽量少做转型动作（Minimize casting.）
1）C风格的转型（旧式转型，o]]></description><category></category></item><item><title><![CDATA[《Effective C++》读书笔记III]]></title><link>https://blog.youkuaiyun.com/mdtkzc/article/details/49883091</link><guid>https://blog.youkuaiyun.com/mdtkzc/article/details/49883091</guid><author>mdtkzc</author><pubDate>Tue, 17 Nov 2015 09:23:16 +0800</pubDate><description><![CDATA[资源管理
条款13：以对象管理资源（Use objects to manage resources.），也就是“资源取得时机便是初始化时机”（Resource Acquisition Is Initialization,RAII）
1）标准程序库提供的auto_ptr是个“类指针（pointer-like）对象”，也就是所谓“智能指针”，其析构函数自动对其所指对象调用delete。
2）对对]]></description><category></category></item><item><title><![CDATA[《Effective C++》读书笔记II]]></title><link>https://blog.youkuaiyun.com/mdtkzc/article/details/49883045</link><guid>https://blog.youkuaiyun.com/mdtkzc/article/details/49883045</guid><author>mdtkzc</author><pubDate>Tue, 17 Nov 2015 09:17:29 +0800</pubDate><description><![CDATA[让自己习惯C++
条款01：视C++为一个语言联邦（View C++ as a federation of languages)
C++是个多重范型编程语言（multiparadigm programming language），一个同时支持过程形式、面向对象形式、函数形式、泛型形式、元编程形式的语言。C++相关的次语言主要包括四个：C、Object-Oriented C++、Template]]></description><category></category></item><item><title><![CDATA[《Effective C++》读书笔记I]]></title><link>https://blog.youkuaiyun.com/mdtkzc/article/details/49883023</link><guid>https://blog.youkuaiyun.com/mdtkzc/article/details/49883023</guid><author>mdtkzc</author><pubDate>Tue, 17 Nov 2015 09:15:21 +0800</pubDate><description><![CDATA[术语
1）声明式
所谓声明式：告诉编译器某个东西的名称和类型，但略去细节。
extern int x; //对象（object）声明式
std::size_t numDigits(int number); //函数（function）声明式
Class Widget; //类（class）声明式
template class GraphNode; //模板（template）声明式
]]></description><category></category></item><item><title><![CDATA[《深入理解Python》读书笔记Ⅵ]]></title><link>https://blog.youkuaiyun.com/mdtkzc/article/details/42873831</link><guid>https://blog.youkuaiyun.com/mdtkzc/article/details/42873831</guid><author>mdtkzc</author><pubDate>Mon, 19 Jan 2015 15:21:45 +0800</pubDate><description><![CDATA[1、Python的完美计时工具：timeit 
timeit 模块定义了接受两个参数的 Timer 类。两个参数都是字符串。第一个参数是要计时的语句；传递给 Timer 的第二个参数是为第一个参数语句构建环境的导入语句。从内部讲，timeit 构建起一个独立的虚拟环境，手工地执行建立语句 (导入模块)，然后手工地编译和执行被计时语句 。

只要有了 Timer 对象，最简单的事就是调用 ti]]></description><category></category></item><item><title><![CDATA[《深入理解Python》读书笔记Ⅴ]]></title><link>https://blog.youkuaiyun.com/mdtkzc/article/details/42811959</link><guid>https://blog.youkuaiyun.com/mdtkzc/article/details/42811959</guid><author>mdtkzc</author><pubDate>Sat, 17 Jan 2015 21:56:43 +0800</pubDate><description><![CDATA[1、urllib 依赖于另一个 Python 的标准库，httplib。通常不必显式地给出 importhttplib (urllib 会自动导入)，但是可以为 HTTPConnection 类 (urllib 在内部使用它来访问 HTTP 服务器) 设置调试标记。
 import httplib
 httplib.HTTPCon nection.debuglevel = 1



2]]></description><category></category></item><item><title><![CDATA[《深入理解Python》读书笔记Ⅳ]]></title><link>https://blog.youkuaiyun.com/mdtkzc/article/details/42777897</link><guid>https://blog.youkuaiyun.com/mdtkzc/article/details/42777897</guid><author>mdtkzc</author><pubDate>Fri, 16 Jan 2015 15:37:15 +0800</pubDate><description><![CDATA[1、正则表达式
（1）在Python中，所有和正则表达式相关的功能都包含在re模块中。
（2）字符$表示”字符串的末尾“，字符尖号^表示”字符串的开始“。
（3）‘\b'表示”单词的边界必须在这里“。
（4）只要处理正则表达式，就使用原始字符串，如r'\t'是一个真正的反斜线字符'\'，紧跟着一个字母't'。
（5）re模块的关键是一个search函数，该函数有两个参数，一个是正则表达式]]></description><category></category></item></channel></rss>