2015年6月12日 星期五

[Selenium][散知識] xpath還是有盲點

發現其實xpath還是有一點限制
如果我們不知道某個element的名稱,單純想找頁面上有出現哪個字的話,
先前我們寫了

xpath('//*[contains(text(),"Specific Word")]')


但我發現那只限定於那個Specific Word是有真真實實真真確確的被包在一個tag裡
也就是說

< span>
Specific Word
< /span>

或是
Specific Word

都可以順利被找到
但如果是
Specific Word < br/> Hello World < br/>;

這樣就會找不到............

2015年6月11日 星期四

[Selenium][散知識] xpath大好

有時候我就是沒有要從特定的element中檢查字,
我只想在這個畫面上找到有符合某些條件的element出來
在沒有特定element的情況下,此時xpath就非常好用
(像是上幾篇說我試著要在email信上面放id,但每家service provider處理id的方式都不同,所以email要定位特定element有點不穩)

xpath('//*[contains(text(),"Specific Word")]') 

(ps, 只是在標題打個顏文字>///<就被視為html tag沒關好!?)

[Selenium][散知識] 如何存getText()

喔耶,由於getText()有promise的問題,取得的值無法直接使用
昨天查了沒什麼結果,今早就找到方法啦!!!

先var一個物件
然後getText後得到的值存到物件裡,然後就可以自由地使用了~就這麼easy~

var data = {};
driver.findElement(webdriver.By.css('#header')).getText().then(function(value){
  data.value = value;
});

reference: http://stackoverflow.com/questions/20213675/how-to-convert-a-promise-in-protractor-to-a-float

2015年6月10日 星期三

[散知識] :nth-child(n)的n與webdriver的小卡關

不自覺就把陣列中的第一是0的觀念帶進來
但:nth-child的第1就是1,不是0
再來就是他同層級的所有事物去選取,這今天才知道滿有趣的


p:nth-child(1)在下面的例子裡是不會選到任何東西的
他要同層級選擇第一個,而且要是p才會被選中,但例子中的第一個是span,所以就是沒選到東西。


hey

abc

abc

abc

abc

abc


-------------------
今天另外發生一個因為responsive而小卡關的有趣事蹟
選取器解決後,卻還是有一個測試一直報錯
斷言說實際值是空的,但不可能阿,同樣的東西其他都通過了,就唯獨他
後來才發現是因為responsive在小視窗下display:none了那個元素
webdriver目前開啟視窗時有預設只開某個大小(個人認為應該可以去調整default,還沒找到放哪)
webdriver又是很明確display:none的東西是抓不到的
所以有做responsive的站,有些元素可能就抓不到,愛滋意~~
此時先使用下列,最大化視窗

driver.manage().window().maximize();


reference:
http://stackoverflow.com/questions/23225604/how-do-i-resize-a-webdriverjs-browser-window
http://selenium.googlecode.com/git/docs/api/javascript/class_webdriver_WebDriver_Window.html#setSize

[爆氣] 我不懂你google使用者阿

一直很想管理一下我某個google帳號內的bookmark
實在不知道怎麼看同步的bookmark在哪裡
"google bookmark"跟瀏覽器的bookmark不是同一個

後來看公司的chrome使用者一直出現驚嘆號(意指之前登入過,但現在是沒登入的狀態)
想說我不要刪除使用者,只是選擇"中斷同步",

結果browser又全部被reset!!!!!!!!!

馬的B咧,我的油猴子的腳本又要重裝了
我只是想單純中斷與帳號的同步,為何一直要強迫我全部重來啦

算了,冷靜,不如敢快先manage bookmark比較重要,花1小時了努力
我又登入我的google帳號救回之前有同步過的
中間有大約半年的bookmark就gone了

只覺得被google使用者陰這麼多次,今天又被雷,應該有五次以上了,心有不甘阿!!!

2015年6月3日 星期三

[outlook web app] 無言的超展開

  
    你好阿
  

用outlook web app開的話,會被拆成

  
    
      你好阿
    
  

所以我要的id就不見了
gmail也都不會出現id
結論:email上的id"有可能"會出現,但每一家供應商處理的方式不一定,所以要靠id定位email不可行

[討厭] 被google chrome 陰

我其實不喜歡一直被同步
新電腦我就想keep it simple
所以我一直不想讓我的chrome綁我的google帳號
在新電腦的chrome用了一段時間,就大概有幾個比較常用的站被記錄,到目前為止都還在我的理想中,
就是稍微記錄我的網站習慣,然後不要存太多bookemark什麼的

昨天想到有幾篇文很棒要存到pocket,下載了pocket的 chrome 套件
安裝完後想說要登入
結果不知為何就登入了chrome的使用者!!!!!!!
結果整個瀏覽器都載入了我使用者的設定,我並不想阿!!!!!!!!(載了一堆bookmark)
而且為何要騙我,我以為我是要登入pocket與google帳號的授權登入阿(我的pocket是綁我google帳號)
我整個超氣的,但我之前的經驗是如果刪掉使用者,就連我之前的東西都刪掉
雖然的確沒存什麼,但又要重來覺得非常討厭!!!!
已經這樣被陰了三四次,難到不能登出使用者回到之前的狀態嗎????