2015-01-30 7 views
6

मैं पाठ को सत्यापित करने की कोशिश कर रहा हूं "प्रदान की गई जानकारी या तो अवैध या अपूर्ण है।" जावा में सेलेनियम/वेबड्राइवर का उपयोग करके प्रदर्शित किया जाता है।सेलेनियम वेबड्राइवर सीएसएस संपत्ति "सामग्री" से टेक्स्ट प्राप्त करें :: पहले छद्म तत्व

मैं निम्न HTML है:

<div id="validationError"> 
    <ul> 
     <li>Required: Server Name</li> 
     <li>Required: Receiving Port</li> 
    </ul> 
</div> 
निम्नलिखित सीएसएस कोड के साथ

:

#validationError:before { 
    content: 'The information provided is either invalid or incomplete.'; 
} 

यहाँ मेरे वर्तमान जावा कोड:

WebElement errorBox = browser.findElement(By.id("validationError")); 
Assert.assertNotNull("Could not find validation errors", errorBox); 

System.out.println("Error Explanation: " + error.getCssValue("content") + "\n"); 

List<WebElement> errorList = errorBox.findElements(By.tagName("li")); 
for (WebElement error : errorList) { 
    System.out.println("Error: " + error.getText()); 
} 

System.out.println("\nError Full Text: " + errorBox.getText()); 

यह ऊपर की मेरी उत्पादन होता है कोड:

Error Explanation: 

Error: Required: Server Name 
Error: Required: Receiving Port 

Error Full Text: Required: Server Name 
Required: Receiving Port 

मुझे टेक्स्ट सत्यापित करने का कोई तरीका नहीं दिख रहा है "प्रदान की गई जानकारी या तो अवैध या अपूर्ण है।" प्रदर्शित किया गया है। वेब तत्व पर getText() पर कॉल करने से अपेक्षित स्ट्रिंग भी वापस नहीं आती है, लेकिन उस div के भीतर कोई अन्य सामान्य टेक्स्ट प्रदर्शित करेगा। कोई विचार?

+0

क्या आप 'html' प्रदान कर सकते हैं? – Saifur

+0

क्षमा करें, मुझे कोड स्वरूपण के साथ समस्याएं थीं, मुझे नहीं पता था कि आपको प्रत्येक कोड स्निपेट से पहले एक नई लाइन की आवश्यकता है। क्या अब यह समझ में आता है? – dfreer

+0

यह करता है। हालांकि, क्या आप जानते हैं कि 'वेबड्राइवर' तत्व को पहले पाता है या नहीं? प्लस भविष्य के संदर्भ के लिए प्रश्न के साथ स्टैकट्रैक प्रदान करें कृपया – Saifur

उत्तर

17

मैं 100% निश्चित नहीं हूं कि वेबड्राइवर आपके लिए छद्म तत्व सामग्री पुनर्प्राप्त कर सकता है। मुझे लगता है कि आपको जावास्क्रिप्ट का उपयोग करने की आवश्यकता होगी। काम के नीचे, मैंने परीक्षण किया।

String script = "return window.getComputedStyle(document.querySelector('#validationError'),':before').getPropertyValue('content')"; 
JavascriptExecutor js = (JavascriptExecutor)driver; 
String content = (String) js.executeScript(script); 
System.out.println(content); 

यह प्रिंट चाहिए

The information provided is either invalid or incomplete. 
-1

खैर .. जरूरत webdriver सभी एक डोम पर वेब तत्व को खोजने के लिए सिर्फ एक मान्य xpath है। और वैध एक्सपैथ को सही करने के कई तरीके हैं।

हम भी तरह टोकन का उपयोग कर सकते हैं

  • वंशज ::
  • बच्चे ::
  • पूर्वज ::
  • शामिल ::

    उदाहरण: // div [*/पाठ() = 'क्रेडिट कार्ड']/वंशज :: इनपुट [@ आईडी = 'कार्ड नम्बर']

आप इस site को xpath में इनका उपयोग करने के तरीके के बारे में अधिक जानकारी के लिए देख सकते हैं ..

+0

डाउनवॉटर उपयोगकर्ताओं को समझाएगा कि जवाब "डाउनवोट" के लायक क्यों है ..? – Praveen

+1

मैं डाउनवॉटर नहीं हूं, लेकिन छद्म तत्व डीओएम पर नहीं दिखते हैं, इसलिए दुर्भाग्यवश आपका उत्तर काम नहीं करेगा। – Arman

संबंधित मुद्दे