亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

步驟定義 Java - Selenium WebDriver 從搜索結果中查找元素

步驟定義 Java - Selenium WebDriver 從搜索結果中查找元素

HUWWW 2021-10-28 14:29:39
我是使用 Java 的 Selenium Webdriver 自動化的新手,并且仍在學習。在我的步驟定義 RetailTakePayment.java 類中,我試圖找到包含特定文本出現在搜索結果中(在彈出窗口中)的元素,但由于某種原因,我無法找到并單擊它。我四處尋找,但不是很幸運。因此,發布我的問題以獲得一些指導。我希望這些有幫助。Salesforce 頁面車輛查找:彈出 - 查找搜索結果:我的 HTML:我的 HTML 中的兩個框架:我的步驟定義:@Given("^user complete payment precheck$")    public void user_complete_payment_precheck() throws Throwable {        // inserting installer and preferred date        driver.findElement(By.id("page:frm:main:jobsInfo:jobsRepeat2:0:j_id164")).sendKeys("Test");        driver.findElement(By.xpath("/html/body/div[1]/div[2]/table/tbody/tr/td[2]/form/div[1]/div/div/div/div[2]/div[5]/div[2]/table/tbody/tr[1]/td/table/tbody/tr/td[4]/span/span")).click();        // searching and selecting vehicle        // click on lookup        driver.findElement(By.xpath("//img[@alt='Vehicle Lookup (New Window)']")).click();        Thread.sleep(2000);        // window switch handler            String parentWindowHandler = driver.getWindowHandle();        String subWindowHandler = null;                Set<String> handles = driver.getWindowHandles();                Iterator<String> iterator = handles.iterator();                while (iterator.hasNext()) {                    subWindowHandler = iterator.next();                }                driver.switchTo().window(subWindowHandler);        // switch by frame        driver.switchTo().frame(0);        // searching - this worked!!!        driver.findElement(By.xpath("//form[@id='theForm']/div/div[2]/input")).sendKeys("autod2018");        Thread.sleep(1000);        driver.findElement(By.name("go")).click();        Thread.sleep(2000);    }
查看完整描述

2 回答

?
MM們

TA貢獻1886條經驗 獲得超2個贊

由于搜索表單和結果表在不同的框架中,所以在與其中的元素進行交互之前,您需要切換到相應的框架。


 // switch to search form frame

 driver.switchTo().frame(0);


 // enter search keywords and click go

 ...


 // switch back to topmost frame in the current window.

 // this is very important, you can't directly switch to result table frame

 // from search form frame ( because it's not includes the result table frame).

 // Most of time, we back to the top frame, then jump into other frame.

 driver.switchTo().defaultContent();


 // then switch to result table frame

 driver.switchTo().frame(<index_or_name_of_result_table_frame>);


查看完整回答
反對 回復 2021-10-28
  • 2 回答
  • 0 關注
  • 173 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號