Селен: Как мне получить изображение? - PullRequest
16 голосов
/ 30 августа 2011

Я использую Selenium (в PHPUnit) для тестирования моего веб-приложения.Я хотел бы проверить, существует ли определенное изображение, которое присутствует на странице.Точнее, вернет ли URL изображения 404 или нет.Чтобы проверить это, мне нужно получить URL изображения.Учитывая локатор изображения, Как я могу получить значение его атрибута src (его URL)?

Ответы [ 7 ]

24 голосов
/ 31 августа 2011

Предполагая, что у вас есть изображение в WebElement (скажем, img), в мире Java вы можете получить ссылку ниже

Редактирование ответа, чтобы уточнить.Selenium 2.0 Java-привязки.В Selenium 2.0 (конечно, если вы используете webdriver) есть класс WebElement, представляющий элементы на странице.getAttribute - это метод селена в связывании 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

есть что-то похожее
3 голосов
/ 31 марта 2016

Код ниже поможет вам получить список всех изображений и их 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();
        }

    }

3 голосов
/ 23 марта 2012

Вы можете использовать getAttribute с XPath для получения изображения src (или любого другого атрибута: alt, title, width и т. Д.)

selenium.getAttribute("//img/@src");
0 голосов
/ 16 июля 2015

вы должны использовать

storeAttribute

И в целевом месте вы должны упомянуть, как это

// IMG [@ SRC = 'imagename.png'] @ СРК.

И сохранить это в переменной, скажем,

IMG

Теперь проверьте это с помощью

verifyAttribute

Например: команда:

verifyAttribute

цель:

// IMG [@ SRC = 'imagename.png'] @ ЦСИ

значение:

$ {IMG}

0 голосов
/ 29 января 2014

Вам нужно использовать XPath.Для PHPUnit и Selenium синтаксис для получения атрибута src изображения:

$imageUrl = $this->getAttribute("//img/@src");
0 голосов
/ 01 декабря 2012

Если вы используете любой веб-драйвер PHP, например 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. Вы можете использовать эту строку, чтобы получить любой атрибут, такой как class, id, title, alt и т. Д. *

0 голосов
/ 30 августа 2011

используйте xPath, например

//img[@src='The image src']

, но, к сожалению, я не уверен, что это хороший способ проверить, было ли загружено изображение

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...