2012-09-05 49 views
2

我使用这个代码,但它返回我的映像名称的名称与URL得到图片src名如何使用Selenium的webdriver

IWebElement element = driver.FindElement(By.XPath("Your xpath")); 
string path = element.GetAttribute("src"); 

结果:

http://nameofthehost/imagename.jpg 

什么,我想只是吐了我的src名字,我该怎么做?

回答

4

即使在HTML源代码中指定了相对URL,某些浏览器也会返回JavaScript中的完整URL。因此,您不必根据您使用的浏览器对代码进行特殊处理,WebDriver会对包含URL的所有属性和属性进行规范化处理,以返回完整的URL。为了解决这个问题,你可以直接使用JavaScript。

// assume driver is a valid WebDriver object 
// Java code 
WebElement element = driver.findElement(By.xpath("your XPath")); 
String src = ((JavascriptExecutor)driver).executeScript("return arguments[0].attributes['src'].value;", element).toString(); 
+0

感谢我给了一枪,因为你是核心贡献者硒你会回答这个问题吗? http://stackoverflow.com/questions/12151958/login-popup-window-using-selenium-webdriver –

+0

@JimEvans - 谢谢你的回答,它也解决了我的问题,我得到完整的src名称,我只想要文本/值显示在图像源中。你可以给我任何分辨率来获取图像上显示的值。请找到我从代码中检索到的字符串。 “QuickApp/HumanValidationImage.aspx?TID = LZhU3a”。但我只想要“LZhU3a”(自动生成)的值。帮助将不胜感激 –

+0

@UmamaheshwarThota以提取所需的值,使用以下代码:scrID = “?QuickApp/HumanValidationImage.aspx TID = LZhU3a” scrID = scrID.substring(scrID.lastIndexOf( '=')+ 1); 只是适合您的需求。 – Michal

0

在推广形式

WebElement element = driver.findElement(locator); 
String src = element.getAttribute(src); 
String [] srcs=src.split("\"); 
相关问题