Selenium has many features for verifying values in the clientside DOM by
xpath and other selectors. Best to look at some selenium tutorials first

On 6 Apr 2017 17:26, "Davide Vecchi" <d...@amc.dk> wrote:

> OK, I did not know that about the Tapestry DOM libraries. That explains a
> few things, and it settles this, I will use something else.
>
> Thanks for the help.
>
>
> -----Original Message-----
> From: Lance Java [mailto:lance.j...@googlemail.com]
> Sent: Thursday, April 6, 2017 18:21
> To: Tapestry users <users@tapestry.apache.org>
> Subject: RE: Creating an org.apache.tapestry5.dom.Document from
> client-side page source
>
> Typically you'd use the tapestry dom only in production code (pages,
> components, mixins etc)
>
> For verifying html in selenium tests you'd usually use Jsoup or geb or
> something or maybe even the java xml libraries. But not the tapestry dom
> libraries.
>
>
> On 6 Apr 2017 17:16, "Davide Vecchi" <d...@amc.dk> wrote:
>
> > Thanks Thiago, I will look into your suggestion, I actually think
> > htmlparser is even already used somewhere else in the application.
> > I'm actually using Selenium WebDriver, and it's true, it's
> > beautifullly suited for this.
> >
> >
> > -----Original Message-----
> > From: Thiago H. de Paula Figueiredo [mailto:thiag...@gmail.com]
> > Sent: Thursday, April 6, 2017 18:09
> > To: Tapestry users <users@tapestry.apache.org>
> > Subject: Re: Creating an org.apache.tapestry5.dom.Document from
> > client-side page source
> >
> > Isn't this scenario better suited for a web testing tool like Selenium
> > or WebDriver?
> >
> > If you really, really want to parse HTML into Tapestry DOM elements,
> > you can use the nu.validator.htmlparser library, which parses HTML
> > using HTML5 rules and presents itself as a SAX parser. You'll need to
> > subclass org.xml.sax.helpers.DefaultHandler and build the Tapestry DOM
> > elements inside its methods. Then you can do whatever you want with
> > it, including using XPath through tapestry-xpath, which I cannot
> recommend enough.
> >
> > On Thu, Apr 6, 2017 at 12:20 PM, Davide Vecchi <d...@amc.dk> wrote:
> >
> > > Hi everybody
> > >
> > > I am writing a Selenium test to test a Tapestry 5.3.8 web app, and
> > > in that test I retrieved the whole client-side page source into a
> String.
> > > It's a regular HTML page generated by Tapestry. Nothing special
> > > about it, it starts with
> > >
> > > <!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml";><head> ....
> > >
> > > and it ends with
> > >
> > > ...... </body></html>
> > >
> > > I need to create an org.apache.tapestry5.dom.Document instance from
> > > that page source, manipulate its DOM, turn the resulting Document
> > > back into a string, and make assertions about this string.
> > >
> > > My problem is only that I can't seem to be able to do the first
> > > step, that is create the Document instance from my String containing
> > > the page
> > source.
> > >
> > > I tried MarkupWriter (its write() and writeRaw() methods):
> > >
> > >        MarkupWriter writer = new MarkupWriterImpl();
> > >
> > >        writer.write(htmlText); // writer.writeRaw(htmlText);
> > >
> > >        Document document = writer.getDocument();
> > >
> > > but then document does not contain the DOM elements that were in
> > > htmlText (which is the String containing the page source), and
> > > document.getDocumentElement() returns null.
> > >
> > > I have tried other variations still with MarkupWriter, Document and
> > > all their methods that seemed related, but I got nothing.
> > >
> > > I'm sure I'm just missing something trivial. Does anyone know ?
> > >
> > > If possible I'd prefer a Tapestry solution, where the created object
> > > is an org.apache.tapestry5.dom.Document, but if it's necessary to
> > > get a org.w3c.dom.Document instead, or to use something else outside
> > > Tapestry, I would still go for it.
> > >
> > > Thanks in advance.
> > >
> > >
> >
> >
> > --
> > Thiago
> >
>

Reply via email to