Selenium: Как получить src изображения?
Я использую Selenium (в PHPUnit) для тестирования моего веб-приложения. Я хотел бы проверить, действительно ли существует определенное изображение, которое присутствует на странице. Точнее, возвращает ли URL-адрес изображения 404 или нет. Чтобы проверить это, мне нужно получить URL-адрес изображения. С учетом локатора изображений Как получить значение его атрибута src (его url)?
Ответы
Ответ 1
Предполагая, что у вас есть образ в WebElement (скажем img), в мире Java вы можете получить ссылку ниже
Редактирование ответа для уточнения.
В Java-мире я подразумеваю привязки Java Selenium 2.0. В Selenium 2.0 (конечно, если вы используете webdriver) есть класс WebElement, представляющий элементы на странице. getAttribute - это метод Selenium в привязке Java.
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 есть что-то подобное
Ответ 2
Вы можете использовать 'getAttribute' с XPath для получения изображения src (или любого другого атрибута: alt, title, width и т.д.)
selenium.getAttribute("//img/@src");
Ответ 3
Если вы используете какой-либо PHP-webdriver, например facebook/phpwebdiver, он легко решает вашу проблему.
Пример:
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
Вам нужно использовать XPath. Для PHPUnit и Selenium синтаксис для получения атрибута src изображения:
$imageUrl = $this->getAttribute("//img/@src");
Ответ 5
вы должны использовать
storeAttribute
И в целевом месте вы должны упомянуть об этом
//IMG [@src= 'imagename.png'] @ЦСИ.
И сохраните это в переменной, скажем
IMG
Теперь убедитесь, что с помощью
verifyAttribute
например: команда:
verifyAttribute
target:
//IMG [@src= 'imagename.png'] @ЦСИ
значение:
${IMG}
Ответ 6
Ниже приведен код, который поможет вам получить список всех изображений и их URL-адресов.
Вы также можете использовать script вместо 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();
}
}
Ответ 7
используйте xPath, например
//img[@src='The image src']
но, к сожалению, я не уверен, что это хороший способ проверить, загружен ли образ.