python selenium webdriver無(wú)法定位title值,該怎么辦
定位不到元素,絕大部分原因都是frame框架沒(méi)選對(duì),有些網(wǎng)頁(yè),在你打開窗口的時(shí)候,源碼才會(huì)顯示出來(lái)在哪個(gè)frame里面,對(duì)于這個(gè)問(wèn)題,推薦你在打開頁(yè)面的時(shí)候,獲取全部的frame名字,看看在哪個(gè)frame:
'''獲取該頁(yè)面所有的iframe名字'''
iframe=browser.find_elements_by_tag_name("iframe")
foroptioniniframe:
iframes=option.get_attribute("outerHTML")
print("frameis:",str(iframes),"")
配合F12查找,再切換:
iframe=browser.find_elements_by_tag_name("iframe")[5]#切換到第六個(gè)frame框架
2.還有一個(gè)原因是網(wǎng)頁(yè)沒(méi)加載出來(lái),程序已經(jīng)跑下去了,這里建議讓瀏覽器等待數(shù)據(jù)加載完再繼續(xù)執(zhí)行下一步:
browser.implicitly_wait(30)#瀏覽器最多等待30秒加載時(shí)間
當(dāng)然也可以使用強(qiáng)制等待:
time.sleep(30)
DEDECMS中,如何把field.title傳給IFRAME中的“name”這個(gè)表格中
用參數(shù)傳遞
<IFRAMEsrc="a.html?title={dede:field.title/}"></iframe>
然后在iframe接到這個(gè)參數(shù)title賦值給name表的value
可以js獲取
/*
獲取指定的URL參數(shù)值
URL:http://www.blogjava.net/blog?name=bainian
參數(shù):paramNameURL參數(shù)
調(diào)用方法:getParam("name")
返回值:bainian
*/
//1.
functiongetParam(paramName)
{
paramValue="";
isFound=false;
if(this.location.search.indexOf("?")==0&&this.location.search.indexOf("=")>1)
{
arrSource=unescape(this.location.search).substring(1,this.location.search.length).split("&");
i=0;
while(i<arrSource.length&&!isFound)
{
if(arrSource[i].indexOf("=")>0)
{
if(arrSource[i].split("=")[0].toLowerCase()==paramName.toLowerCase())
{
paramValue=arrSource[i].split("=")[1];
isFound=true;
}
}
i++;
}
}
returnparamValue;
}
哪些標(biāo)簽含有name屬性
查手冊(cè)會(huì)查到很多,如:
FRAME,FRAMESET,IFRAME,META,
A,APPLET,attribute,BUTTON,EMBED,FORM,IMG,INPUTtype=button,INPUTtype=checkbox,INPUTtype=file,INPUTtype=hidden,INPUTtype=image,INPUT
type=password,INPUTtype=radio,INPUTtype=reset,INPUTtype=submit,INPUTtype=text,LINK,MAP,OBJECT,RT,RUBY,SELECT,TEXTAREA,PARAM