Я не могу найти xpath в IE11 Windows 10 с IEDriver - PullRequest
0 голосов
/ 08 мая 2019

Я пытаюсь найти xpath для следующего кода.Но это показывает некоторые ошибки.Элемент проверки:

<BUTTON title="Create Customer" class="SBCUSTMENU awbButton" id=C2_W10_V11_btnCREATE_CUSTMC onmouseout=javacript:awbImgButtonMouseOut(this); onmousedown=javacript:awbImgButtonMouseDown(this); onmouseup=javacript:awbImgButtonMouseUp(this); onclick="javascript:if(awbBtnActive(this)){if (awbAddMonitorIdsToHttp(['MONITOR_JOURNEY','','MONITOR_STEP',''])){htmlbSubmitLib('htmlb',this,'htmlb:button:click:null','myFormId','C2_W10_V11_btnCREATE_CUSTMC','onclick_CREATE_CUSTMC',0);}}return false;" type=button awbClass="awbButton SBCUSTMENU">&nbsp;</BUTTON>

driver.findElement(By.id("C2_W10_V11_btnCREATE_CUSTMC")).click();

Я ожидаю следующую ошибку

Exception in thread "main" org.openqa.selenium.TimeoutException: Timed out after 10 seconds waiting for visibility of element located by By.id: C2_W10_V11_btnCREATE_CUSTMC
Build info: version: '2.53.1', revision: 'a36b8b1', time: '2016-06-30 17:37:03'
System info: host: 'PC404441', ip: '10.27.101.9', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_192'
Driver info: org.openqa.selenium.ie.InternetExplorerDriver
Capabilities [{browserAttachTimeout=0, ie.enableFullPageScreenshot=true, enablePersistentHover=true, ie.forceCreateProcessApi=false, ie.forceShellWindowsApi=false, pageLoadStrategy=normal, ignoreZoomSetting=false, ie.fileUploadDialogTimeout=3000, version=11, platform=WINDOWS, nativeEvents=true, ie.ensureCleanSession=false, elementScrollBehavior=0, ie.browserCommandLineSwitches=, requireWindowFocus=false, browserName=internet explorer, initialBrowserUrl=http://localhost:10768/, javascriptEnabled=true, ignoreProtectedModeSettings=false, enableElementCacheCleanup=true, unexpectedAlertBehaviour=dismiss}]

Ответы [ 2 ]

0 голосов
/ 08 мая 2019

Сначала проверьте, присутствует ли элемент в FRAME или нет - если он присутствует -> в этом случае вам необходимо сначала переключиться на этот кадр, а затем выполнить действие.

driver.switchTo.frame(""); 
// perform the action

Если не внутри фрейма, вы можете использовать явные ожидания:

WebDriverWait wait = new WebDriverWait(driver, waitTime);
WebElement element = wait.until(ExpectedConditions.visibilityOfElementLocated(By.XPath("")))

OR

WebDriverWait wait = new WebDriverWait(driver, waitTime);
wait.until(ExpectedConditions.elementToBeClickable(locator));
0 голосов
/ 08 мая 2019

Вам может потребоваться вызвать WebDriverWait, если элемент, по которому вы щелкаете, генерируется динамически:

import org.openqa.selenium.support.ui.WebDriverWait;
import org.openqa.selenium.support.ui.ExpectedConditions;

(new WebDriverWait(driver, 10)).until(ExpectedConditions.elementToBeClickable(By.cssSelector("button[title='Create Customer']")).click();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...