我正在使用Selenium(在PHPUnit中)来测试我的Web应用程序。我想测试页面上存在的某个图像是否确实存在。更确切地说,图像URL是否返回404。为了测试它,我需要获取图像网址。给定图像定位器,如何获取其src属性(其URL)的值?
答案 0 :(得分:24)
假设您在WebElement中有一个图像(比如说img),在Java世界中你可以检索下面的链接
编辑答案以澄清。 在Java世界中,我指的是Selenium 2.0 Java绑定。在Selenium 2.0中(当然如果你使用的是webdriver)有一个名为WebElement的类,表示页面上的元素。 getAttribute是Java绑定中的selenium方法。
String url = "http://www.my.website.com";
WebDriver driver = new FirefoxDriver();
driver.get(url);
WebElement img = driver.findElement(By.id("foo"));
String src = img.getAttribute("src");
也许PHPUnit中有类似的内容
答案 1 :(得分:3)
您可以在XPath中使用'getAttribute'来获取图像src(或任何其他属性:alt,title,width等)
selenium.getAttribute("//img/@src");
答案 2 :(得分:3)
下面的代码将帮助您获取所有图片及其网址的列表。 您也可以在 img 上使用 脚本 来获取javascript文件列表。
package seleniumlinkpackage; import java.util.List; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.firefox.FirefoxDriver; public class xmenfirstclass { public static void main(String[] args) throws InterruptedException { String url = "Paste Your URL here"; WebDriver driver = new FirefoxDriver(); driver.get(url); List links=driver.findElements(By.tagName("img")); // this will display list of all images exist on page for(WebElement ele:links){ System.out.println(ele.getAttribute("src")); } //Wait for 5 Sec Thread.sleep(5); // Close the driver driver.quit(); } }
答案 3 :(得分:0)
如果您使用的是facebook/phpwebdiver之类的任何PHP网络驱动程序,那么它将很容易解决您的问题。
示例:
1)创建一个wedriver对象:
public function setUp()
{
parent::setUp();
$web_driver = new WebDriver();
$element = $web_driver->session();
}
使用此$element
变量,您可以使用以下行轻松访问任何HTML属性:
$element->element('xpath', '//*[@id="logo"]')->attribute('src');
这将返回src
attibute的值。您可以使用此行来获取类,id,title,alt等任何属性......
答案 4 :(得分:0)
您需要使用XPath。对于PHPUnit和Selenium,获取图像的src属性的语法是:
$imageUrl = $this->getAttribute("//img/@src");
答案 5 :(得分:0)
你必须使用
storeAttribute
在目标地点,你必须提到这样的
// IMG [@src =' imagename.png&#39]。@ SRC
将变量存储在变量中
IMG
现在使用
验证verifyAttribute
例如:command:
verifyAttribute
目标:
// IMG [@src =' imagename.png'] @ SRC
值:
$ {IMG}
答案 6 :(得分:0)
好吧,在chrome中,可以用Java编写代码以获取图像src的列表
import java.util.List;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
public class imageUrl {
public static void main(String[] args) {
//Create Driver-object for chrome browser
System.setProperty("webdriver.chrome.driver","//Users//admin//Desktop//chromedriver");
WebDriver driver = new ChromeDriver();
//get the page
driver.get("https://jet.com/");
// this will find the elements by tag name. Don't forget to write "WebElement" after List.
//or else it will give an error on the for loop
List<WebElement>links=driver.findElements(By.tagName("img"));
// this will display list of all images exist on page
for(WebElement ele:links){
System.out.println(ele.getAttribute("src"));
}
}
}
答案 7 :(得分:0)
driver.findElement(By.cssSelector(“ img”))。getAttribute(“ src”)
答案 8 :(得分:-3)
使用xPath,例如
//img[@src='The image src']
但不幸的是,我不确定这是测试图像是否加载的好方法