小米啊 发表于 2010-5-14 20:08:12

selenium处理 <a target=_blank 几种方式整理

方法1.取 href ,再用open(当时是为了走通流程)




方法2.修改被测页面的<a> 元素打开页面的方式                              
//模拟打开子窗口
//用窗口打开
selenium.getEval("this.page().findElement(\""+picXpath+"\").removeAttribute('target')");
selenium.getEval("this.page().findElement(\""+picXpath+"\").href=\"javascript:window.open('"+picUrl+"','p4pwindow','scrollbars=yes')\"");
selenium.click(picXpath);
Thread.sleep(100);
selenium.selectWindow("name=p4pwindow");                               
String bigPic=selenium.getAttribute("//img[@id='J_ImgBooth']@src");
                               
//add code
selenium.getEval("javascript:window.close();");
selenium.selectWindow("name=mywindow");
方法3:在单击弹出后,用selenium.getAllWindowTitles(),取最后一个title(这个我暂时没有用到,因title都一样)selenium.click(picXpath);
String[] titles=selenium.getAllWindowTitles();
selenium.selectWindow("title="+titles+"");
//add code
selenium.close();



方法4:autoit, 一点点来模拟.(vbs,代码片)SetobjArgs = WScript.Arguments
Set oAutoIt = CreateObject("AutoItX3.Control")
oAutoIt.WinActivate "untitled", ""
oAutoIt.WinWaitActive "untitled","",5
oAutoIt.MouseClick "left", objArgs(0), objArgs(1), 1

rem
oAutoIt.AutoItSetOption "WinTitleMatchMode", 2
'set title = oAutoIt.WinGetTitle("_更多", "")
oAutoIt.WinActivate "_更多", ""
oAutoIt.WinWaitActive "_更多", "",5


希望高人能提供更好的方法共享。

[ 本帖最后由 小米啊 于 2010-5-15 09:48 编辑 ]

parkyb 发表于 2010-7-28 17:39:53

1. 可以采用弹出窗口-设置成在原有的窗口中大打开就可以了
selenium.runScript("var frame = document.getElementById('ygmasrchfrm');frame.target='_self'");

‘ygmasrchfrm' 这个是点击后会弹出窗口的link的ID。

wugecat 发表于 2010-5-17 09:53:34

学习了

gagharv 发表于 2012-2-6 14:52:07

http://bmaddys.blogspot.com/2011/08/selenium-window-target-blank-issue.html

aivey 发表于 2012-11-1 17:31:28

学习了

fwind1 发表于 2013-10-21 23:25:50

mark

jiangjiangAzura 发表于 2015-9-23 15:31:11

可是还是不知道具体的操作步骤、、有人指教不?
页: [1]
查看完整版本: selenium处理 <a target=_blank 几种方式整理