0

Я использую следующий xpath, чтобы щелкнуть элемент, используя JSExecutor в Selenium webdriver. Это отлично работает в Firefox и Chrome, но не работает в IE.Xpath selector не работает в IE, но отлично работает в Chrome и Firefox

Любая идея, чтобы сделать эту работу? После многих проб и ошибок я сделал эту работу в FF и chrome и придумал следующий XPath.

//*[contains(@class,'ui-select-choices-row') or contains(@id,'ui-select-choices-row')]//*[text()='TextofMyElementToBeclicked' 

Дополнительная информация: Это JQuery выпадающее на угловом приложении. Когда пользователь нажимает на drop down // ul загружается, и я использую вышеуказанный xpath (который является частью // ul), чтобы выбрать элемент на основе текста (с помощью щелчка исполнителя Javascript). Я использовал JS-исполнитель, потому что функция click() в селене просто не могла щелкнуть по выпадающему элементу.

Я нажимаю элемент, используя ниже.

WebElement element = driver.findElement(By.xpath("YourNumbersXpath")); 
JavascriptExecutor executor = (JavascriptExecutor)driver; 
executor.executeScript("arguments[0].click();", element); 
    enter code here 
+0

Я думаю, что вы можете найти решение [здесь] (http://stackoverflow.com/questions/15252837/selenium-javascriptexecutor-on-ie9-results-in-element-was-not- scrollled-into-the) или [Здесь] (http://stackoverflow.com/questions/20138761/how-to-select-a-dropdown-value-in-selenium-webdriver-using-java) – ImLearning

ответ

1

Я успешно протестировал ваш XPath с IE11, так что это не проблема, связанная с IE. Скорее всего, это вопрос времени. Сначала нажмите на кнопку капли, а затем ждать, пока целевой элемент появится и, наконец, нажмите на него:

WebDriver driver = new FirefoxDriver(); 
WebDriverWait wait = new WebDriverWait(driver, 30); 
driver.get("..."); 

// move the cursor to the menu Product 
WebElement element = driver.findElement(By.xpath("drop down button")).click(); 
wait.until(ExpectedConditions.elementToBeClickable(By.xpath("drop down item"))).click(); 
+0

Пробовали это и также попытался elemntToBevisible .. Оба с ошибкой не смогли найти элемент. Странно это терпит неудачу только в IE 11. – Mike

+0

Это работает, если вы запустите код шаг за шагом? –

+0

Нет. Он просто говорит, что он не может найти xpath .. Он ждет против часовой пояс по умолчанию и выдает ошибку. – Mike

0

IE11, кажется, борьба с содержит (@CLASS и, возможно, также содержит (@Id Попробуйте использовать альтернативные решения. например, начинается с.

Смежные вопросы