首先為這么糟糕的標題道歉,請建議一個好的標題。
以下是我面臨的問題的詳細資訊:
網站:
https://www.desmos.com/calculator/lzidy3m70r
腳步:
- 點擊左上角的 按鈕
- 選擇影像并上傳任何影像
- 更新中心、寬度和高度欄位中的值
問題:無法與中心、寬度和高度的任何文本區域互動。不斷獲取可互動例外的元素
這是html

如您所見,寬度欄位沒有輸入標簽,只有 2 個跨度分別顯示 15 個,并且 textarea 也不可互動
這是我用于識別 textarea 或 span 的 xpath:
//textarea[contains(@class,'dcg-smart-textarea') and text()='" imageName "']/parent::div/parent::div/following-sibling::div//span[@class='dcg-mq-textarea']/textarea
//textarea[contains(@class,'dcg-smart-textarea')]/parent::div/parent::div/following-sibling::div//span[@class='dcg-mq-root-block dcg-mq-editing-overflow-right']/span
我嘗試了很多方法,例如首先單擊 div,一旦游標可用,然后嘗試鍵入或先單擊,然后清除然后鍵入,但單擊成功后,下一步將失敗,例外元素不可互動。
我認為 javascriptexecutor 需要以某種方式處理這種情況,但我對 javascript 和處理此類欄位的方法不是很了解。
有人可以幫我解決這個問題并成功輸入中心、寬度和高度欄位的值嗎?
uj5u.com熱心網友回復:
在這種情況下,您不需要 JavaScript 執行程式。
使用下面的 xpath
//div[text()='Center:']//following-sibling::div
您可以找到與中心、寬度和高度的 div 欄位相關的所有 Web 元素。
現在找到我使用 xpath 索引的第一個元素:
(//div[text()='Center:']//following-sibling::div)[1]
這將針對第一個中心欄位。
此外,我們必須清除該 div 中已經存在的默認值,因為我們有回圈。
代碼 :
driver.manage().window().maximize();
WebDriverWait wait = new WebDriverWait(driver, 30);
//driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);
driver.get("https://www.desmos.com/calculator/lzidy3m70r");
Actions action = new Actions(driver);
WebElement centerWebElement = wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("(//div[text()='Center:']//following-sibling::div)[1]")));
centerWebElement.click();
for (int i = 0; i<=10 ; i ) {
action.moveToElement(centerWebElement).sendKeys(Keys.BACK_SPACE).build().perform();
Thread.sleep(100);
System.out.println("Clicked on delete for " i " time");
}
new Actions(driver).moveToElement(centerWebElement).pause(2).sendKeys("2021, 2021").build().perform();
同樣的方式,對于第一個寬度
(//div[text()='Center:']//following-sibling::div)[3]
和第一個高度
(//div[text()='Center:']//following-sibling::div)[7]
應該可以幫助您解決問題。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/322553.html
標籤:javascript 爪哇 硒 硒网络驱动程序 ui-自动化
下一篇:如何比較輸入文本中的兩個值?
