我們使用IE和Java運行Selenium。點擊網頁上的鏈接打開一個新的IE頁面,這顯然不是IE驅動程序的子頁面,所以我不能做一個driver.switchTo();該頁面是一個空白文件名和一個確定按鈕的表單。上一頁開發商製造了一個機器人類,並送出9個TAB按鍵事件才能到OK按鈕,然後一個在Selenium和IE中使用Java Robot類
robot.keyPress(KeyEvent.VK_ENTER);
robot.keyRelease(KeyEvent.VK_ENTER);
現在我需要更改文件名中的價值,所以我算TABS的數量,直到練到該文件,然後做一個退格,然後鍵入類似這樣的文件名:
for (int ic = 0; ic < filePrefix.length(); ic++) {
char ch = filePrefix.charAt(ic);
int kc = KeyEvent.getExtendedKeyCodeForChar(ch);
System.out.println("Sending " + ch + "[" + kc + "]");
if (ch >= 'A' && ch <= 'Z') {
robot.keyPress(KeyEvent.VK_SHIFT);
}
robot.keyPress(kc);
robot.keyRelease(kc);
if (ch >= 'A' && ch <= 'Z') {
robot.keyRelease(KeyEvent.VK_SHIFT);
}
Thread.sleep(500);
}
此工程在我的機器上,但我相信我們第一次跑這只是停頓了一下,當我點擊網頁它問我是否想讓機器人改變文字。
問題是,這將在詹金斯運行,沒有人會在那裏回答這個問題,關於允許機器人訪問文本。此外,我知道在Selenium網格上運行時,Robot不是很可靠。
所以我想,首先是有一個啓動IE瀏覽器,讓機器人來讀取和修改文本>
其次,將即使在硒網格(遠程)的工作方式?
更妙的是,我們如何才能讓IE的驅動程序能夠訪問此頁面,所以我可以用很簡單的XPath,而不是機器人擺在首位(我認爲這是不可能的)?
哦,不幸的是,對於這個網站,我們需要IE瀏覽器,不能使用Chrome或Firefox。
我不認爲我在購買由Selenium控制的另一個實例啓動的瀏覽器實例無法訪問的想法。你確定你完全測試過嗎?我以前從來沒有見過。在訪問它之前,您可能需要等待一段時間才能確保新的瀏覽器實例已完全加載。你能分享這個網站嗎,這樣我們可以測試一些東西嗎? – JeffC
不幸的是它在我們公司的防火牆內,否則我會。外面沒有訪問權限。至於進入這個窗口,一個非常有知識的人告訴我同樣的事情,你不能這樣做。我們有功能讓你拍攝一個窗口快照,點擊一個鏈接,然後等待新窗口並切換到它,所以它應該等待,直到有一個新窗口並且窗口完成。但是我甚至在睡眠之後做了一種(對於String id:driver.getWindowHandles()),並切換到每個窗口,嘗試查找元素,甚至切換到任何幀。 Nothing wor – Tony
ked(對不起,我跑了上面的字符) – Tony