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']

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