Пример #1
0
func emuInput2(browser *cef.Browser) {
	fmt.Printf("emuInput\n")
	// 查找

	frame := browser.GetMainFrame()

	//frameCount := browser.GetFrameCount()
	//fmt.Printf("frameCount=%v\n", frameCount)

	//frameIdentifiers := browser.GetFrameIdentifiers()
	//fmt.Printf("frameIdentifiers=%v\n", frameIdentifiers)

	// 计算frame坐标
	//mainFrame := browser.GetMainFrame()
	//login_frame_left, login_frame_top := navigator.GetHtmlElementOffset(mainFrame, "#loginIframe")
	//fmt.Printf("#loginIframe坐标:left=%v,top=%v\n", login_frame_left, login_frame_top)
	// 获取frameElement id
	//for i := 0; i < len(frameIdentifiers); i++ {
	//identifier := frameIdentifiers[i]
	//fmt.Printf("frame-identifier=%v\n", identifier)
	// id=loginIframe
	//frame := browser.GetFrameByIdent(identifier)
	//if !frame.IsValid() {
	//	fmt.Printf("IsValid fail.\n")
	//	continue
	//}

	/*c := `
	  var id_ = "";
	  var frame = window.frameElement;  //Get <iframe> element of the window
	  if (frame) {
	  //if (typeof frameElement_.id !== "undefined" && frameElement_.id !== null) {
	      // some code here
	      if (typeof frame.id !== "undefined" && frame.id !== null) {
	          id_ = frame.id;
	      }
	  }
	  app.cefResult(id_);
	  `*/
	//frame_id := frame.ExecuteJavaScriptWithResult(c)
	//fmt.Printf("frame_id=%v\n", frame_id)
	//if frame_id == "loginIframe" {
	fmt.Printf("找到登录界面")

	navigator.InjectFocus(browser, true)
	fmt.Printf("开始登录支付宝...\n")
	fmt.Printf("获取账号输入框按钮坐标\n")

	left, top := navigator.GetHtmlElementOffset(frame, "#J-input-user")
	fmt.Printf("输入框坐标:left=%v,top=%v\n", left, top)

	x := left + 10
	y := top + 10
	fmt.Printf("点击账号输入框 x=%v,y=%v\n", x, y)

	hWnd := win.HWND(browser.GetWindowHandle())
	fmt.Printf("hWnd=%v\n", hWnd)
	navigator.MouseClick(hWnd, x, y)
	fmt.Printf("点击账号输入框\n")
	time.Sleep(2 * time.Second)
	navigator.InjectKeyPress(browser, "*****@*****.**")
	fmt.Printf("输入完成.\n")

	time.Sleep(5 * time.Second)

	fmt.Printf("点击密码输入框\n")
	left, top = navigator.GetHtmlElementOffset(frame, "#password_input")
	x = left + 10 + 40
	y = top + 10
	fmt.Printf("输入框坐标:left=%v,top=%v\n", x, y)
	navigator.InjectMouseClick(browser, x, y)
	fmt.Printf("点击账号输入框\n")
	time.Sleep(3 * time.Second)
	navigator.InjectKeyPress(browser, "1")
	fmt.Printf("输入完成.\n")
	time.Sleep(5 * time.Second)
	fmt.Printf("失去焦点1.\n")
	navigator.InjectFocus(browser, false)
	fmt.Printf("失去焦点2.\n")
	//}
	//}
}