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

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

如何使用 Java Selenium 單擊 AngularJS 鏈接?

如何使用 Java Selenium 單擊 AngularJS 鏈接?

侃侃無極 2023-05-17 15:38:34
我在 Java 中使用 Selenium WebDriver。我做了大部分事情,但我被困在某一點上,我有以下 HTML 代碼:<a ng-href="#/studyenrollments/new" ng-show="canCreate" class="btn btn-primary edit-btn" href="#/studyenrollments/new">New Study Enrollment</a>我試過以下方法://new study enrollmentdriver.findElement(By.linkText("New Study Enrollment")).click();    driver.findElement(By.xpath("/html/body/div[2]/div[3]/a")).click();((JavascriptExecutor)driver).executeScript("document.querySelector(\"body > div.container.page.ng-scope > div.text-right.ng-scope > a\")");我希望點擊“新研究注冊”按鈕并進入下一頁以完成注冊過程
查看完整描述

2 回答

?
蝴蝶不菲

TA貢獻1810條經驗 獲得超4個贊

檢查元素是否在框架內如果是 - 然后 - 首先選擇框架 -


Select Frame    name or id of iframe

然后執行以下操作 -


WebDriverWait wait = new WebDriverWait(driver, 10);

wait.until(ExpectedConditions.elementToBeClickable(By.xpath(".//a[@ng-show='canCreate']"))).click();

如果沒有框架那么你可以直接與元素交互 -


WebDriverWait wait = new WebDriverWait(driver, 10);

wait.until(ExpectedConditions.elementToBeClickable(By.xpath(".//a[@ng-show='canCreate']"))).click();



查看完整回答
反對 回復 2023-05-17
?
長風秋雁

TA貢獻1757條經驗 獲得超7個贊

您需要添加顯式等待條件,尤其是在處理包含 Angular JS 元素的頁面時


 WebElement newStudyEnrollment= driver.findElement(By.xpath("//a[contains(text(),'New 

      Study Enrollment')]"));

    WebDriverWait wait = new WebDriverWait(driver, 10);

    wait.until(ExpectedConditions.elementToBeClickable(newStudyEnrollment));

    newStudyEnrollment.click();


查看完整回答
反對 回復 2023-05-17
  • 2 回答
  • 0 關注
  • 219 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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