/***
	 * 名片设置删除好友 不看他/她的动态 用例 1、点击我的、 2、点击设置 3、判断列表是否有,如果有就删除,如果没有就添加好友!!
	 * 
	 */

	public static void MoveFirends() throws Exception {

		Thread.sleep(2000);
		driver.findElement(GetByLocator.getLocator("MyInfo")).click();
		Thread.sleep(2000);

		driver.findElement(GetByLocator.getLocator("BusinessCardSet")).click(); // 设置
		driver.findElement(GetByLocator.getLocator("DoNotLookDynamic")).click(); // 点击不看他/她的动态

		List<AndroidElement> AddNameList = driver.findElements(GetByLocator.getLocator("AddNameList"));

		if (AddNameList == null || AddNameList.size() == 0) {
			System.out.println("不看他/她的动态列表有没有可以删除的朋友");
			driver.findElement(GetByLocator.getLocator("AddBusinessCard_DonWatch")).click();// 添加名片
			driver.findElement(GetByLocator.getLocator("BusinessCardCearch")).click();// 添加名片
			driver.findElement(GetByLocator.getLocator("SearchBoxTextInput")).sendKeys("美丽的开始"); // 输入要添加的名片
			driver.findElement(GetByLocator.getLocator("SelectTheSearchResults")).click(); // 选中添加
			driver.findElement(GetByLocator.getLocator("Click_ok")).click(); // 确定
			System.out.println("添加名片成功");
			driver.pressKeyCode(AndroidKeyCode.BACK);
		} else {
			for (AndroidElement as : AddNameList) {
				String namelist = as.getAttribute("text");
				System.out.println("AddNameList:" + namelist);
				if (!namelist.equals("")) {
					driver.findElement(GetByLocator.getLocator("MoveBusinessCard_DonWatch")).click();
					driver.findElement(GetByLocator.getLocator("BackgroundOK")).click();
					System.out.println("不看他/她的动态列表有可以删除的朋友");
					System.out.println("开始移除不看他/她的动态列朋友!");
				}
			}
		}

		System.out.println("不看他/她的动态列表操作完毕!!");
		driver.pressKeyCode(AndroidKeyCode.BACK);

	}

参考 沙陌 老师 资料

/**
	 * 1. 首页点击文章标题
	 * 2. 进入文章详情页面点击关注
	 * 3. 如果是已关注,则取消关注
	 * 4. 遍历当前界面所有的文章
	 * @param args
	 * @throws Exception 
	 * @throws Exception
	 */
	
	public void attention() throws Exception{
		//*[@resource-id='com.zhihu.android:id/title']
		List<AndroidElement> titleList=driver.findElementsByXPath("//*[@resource-id='com.zhihu.android:id/title']");
		for(AndroidElement ae:titleList){
			String title=ae.getText();
			ae.click();
			//*[@text='已关注']  //*[@text='关注']
			Thread.sleep(2000);
			try {
				driver.findElementByXPath("//*[@text='已关注']").click();
				System.out.println(title+"====关注取消成功");
			} catch (Exception e) {
				// TODO: handle exception
				try {
					driver.findElementByXPath("//*[@text='关注']").click();
					System.out.println(title+"====关注成功");
				} catch (Exception e2) {
					// TODO: handle exception
					System.out.println("没找到关注,继续执行");
				}
				
			}
			Thread.sleep(2000);
			//执行设备物理返回
			driver.pressKeyCode(4);
			Thread.sleep(1000);
		}
	}
	
	public void nightMode(){
		clickMenu(5);
		AndroidElement nightMode=driver.findElement(By.id("com.zhihu.android:id/night_mode_switch"));
		String status=nightMode.getAttribute("checked");
		nightMode.click();
		status=nightMode.getAttribute("checked");
		if(status.equals("true")){
			System.out.println("夜间模式打开成功");
		}else{
			System.out.println("夜间模式关闭成功");
		}
		String text=nightMode.getAttribute("text");
		String id=nightMode.getAttribute("resourceId");
		String className=nightMode.getAttribute("className");
		//String content_desc=nightMode.getAttribute("content-desc");
		String checkable=nightMode.getAttribute("checkable");
		String clickable=nightMode.getAttribute("clickable");
		String enable=nightMode.getAttribute("enabled");
		String longClickable=nightMode.getAttribute("longClickable");
		//name参数优先获取content-desc属性的值,如果这个值为空字符串,那么会获取text属性的值
		String name=nightMode.getAttribute("name");
		//更新AppiumBootStrap包之后,可以实用contentDescription来获取content-desc的值
		//String content_desc=nightMode.getAttribute("contentDescription");
		String selected=nightMode.getAttribute("selected");
		String displayed=nightMode.getAttribute("displayed");
		//nightMode.isSelected();//这个方法没用,无法是否被选中
		System.out.println(selected+"============="+displayed);
				
	}