2014-10-08 2 views
0

Мне нужно получить доступ к folderId от кода:StaleElementReferenceException: несвежий опорный элемент:

{ 
"folderType": 3, 
      "createdDate": "02.09.2014 11:57:28.UTC", 
      "modifiedDate": "02.09.2014 11:57:28.UTC", 
      "folderName": "Enterprise", 
      "folderId": "baebc0fb-38cb-4300-9bd1-9b98fa622e4a", 
      "widgetType": null, 
      "enterpriseId": "366fc1f1-670d-41bc-905e-bc80accd2537", 
      "parentFolderId": "", 
} 
{ 
"folderType": 3, 
      "createdDate": "02.09.2014 11:57:28.UTC", 
      "modifiedDate": "02.09.2014 11:57:28.UTC", 
      "folderName": "Enter", 
      "folderId": "6671ca49-9637-488e-9a0e-f7dbf415a542", 
      "widgetType": null, 
      "enterpriseId": "366fc1f1-670d-41bc-905e-bc80accd2537", 
      "parentFolderId": "", 
} 

Мне нужно получить доступ к folderId из «Enterprise» и «Enter» папку.

Это мой код: "[. = // пядь '\ "Enterprise \"']

Строка s1 = driver.findElement (By.xpath (/ предок :: пред/следующий-родственный :: предварительно [1]/SPAN [2] ")) GetText().

String s2=driver.findElement(By.xpath("//span[. = '\"Enter\"']/ancestor::pre/following-sibling::pre[1]/span[2]")).getText(); 

Я хочу напечатать значения строк s1 и s2 без котов. Я могу получить доступ к папке «Предприятие», но не смог получить доступ к папке «Ввод». As 'Enter' folderId - новая созданная папка.

Для каждого поля излагают между голубятен, Ниже приведен общий FORAMT HTML код:

<pre>   <span class="cm-string">"folderName"</span>: <span class="cm-string">"Enter"</span>,</pre> 
<pre>   <span class="cm-string">"folderId"</span>: <span class="cm-string">"6671ca49-9637-488e-9a0e-f7dbf415a542"</span>,</pre> 

Я могу выбрать Enter folderId с помощью инструментов разработчика Chrome, как это:

$x("//span[. = '\"Enter\"']/ancestor::pre/following-sibling::pre[1]/span[2]") 
[<span class=​"cm-string">​"6671ca49-9637-488e-9a0e-f7dbf415a542"​</span>​] 

Фактический выход в затмении: Исключение в потоке «main» org.openqa.selenium.StaleElementReferenceException: ссылка на устаревший элемент: элемент не прикреплен к документу страницы (информация сессии: chrome = 37.0.2062.124)

+0

В какой браузер вы тестирования? – Braj

+0

Chrome Browser.Its расширение chrome 'Postman rest client' Я пытаюсь автоматизировать. – user3174553

ответ

2

StaleElementReferenceException связано с недоступностью элемента, к которому обращается метод findelement().

Используйте ниже пример кода ждать видимости элемента:

private static WebElement findElement(WebDriver driver, By locator) { 
    Wait<WebDriver> wait = new FluentWait<WebDriver>(driver) 
      .withTimeout(90, TimeUnit.SECONDS) 
      .pollingEvery(5, TimeUnit.SECONDS) 
      .ignoring(NoSuchElementException.class, StaleElementReferenceException.class); 
    return wait.until(ExpectedConditions.visibilityOfElementLocated(locator)); 
} 

Read more...

+0

Так что я сомневаюсь здесь, всякий раз, когда я могу найти элемент с помощью инструментов разработчика в хроме, если он все еще не работает в eclipse. Какая причина может быть? Я сталкивался с такими проблемами много раз. – user3174553

+0

«FluentWait» решит проблему, которая в первую очередь ждет видимости элемента. Извините, у меня нет глубоких знаний об этом. – Braj

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