Nicole Phillips
Nicole Phillips

Reputation: 763

Locate all xpath attributes that contains part of the value

I need to wait for all elements to not be visible with an attribute 'id' that contains the word 'mask'. I have tried like this:

//*[contains(@id *= 'mask')]

However it is giving me an element not found exception.

Upvotes: 1

Views: 392

Answers (2)

Bill Hileman
Bill Hileman

Reputation: 2838

I believe the syntax you're looking for is:

//*[contains(@id,'mask')]

I do something similar where I wait until the count is zero for classes that contain "BlockUI":

public static void waitForBlockUIToDisappear() {
        // This function checks the entire currently-loaded web page for the
        // presence of any web element of the
        // class "blockUI" and loops until there are none. The presence of an
        // element with this class does exactly
        // what it implies: it blocks user input. If you get the error that a
        // different web element would receive
        // the click, for example, this is why and you'd need to call this
        // method before doing a click. Generally,
        // this function should be implemented before sending any input to a web
        // page - click, sendkeys, select...
        String blockUI = "//*[contains(@class,'blockUI')]";
        while (true) {
            if (driver.findElements(By.xpath(blockUI)).size() == 0)
                break;
        }
        ;
    }

You should be able to alter that code to look for your id to contain your text.

Upvotes: 1

Akarsh
Akarsh

Reputation: 967

You can use explicit wait in this case, as below.

WebDriverWait wait = new WebDriverWait(driver,15);
        wait.until(ExpectedConditions.invisibilityOfAllElements(driver.findElements(By.xpath("//*[starts-with(@id,'mask')]"))));

In c# they were not implemented this method, but you can implement that.

Below is the url that can help you to write.

https://github.com/SeleniumHQ/selenium/blob/master/dotnet/src/support/UI/ExpectedConditions.cs#L140

Upvotes: 0

Related Questions