Selenium测试一个错过id和title以及其他敏感信息的界面

时间:2012-05-31 08:41:28

标签: selenium junit webdriver

我正在为一位希望我做selenium / junit测试的客户工作,但整个用户界面没有显示任何html代码的id或页面的标题,只是像“欢迎来...”这样的内容,如何检查一个是在主页上还是在登录页面中?例如?

这是html的一个例子:

<div class="site-body m-welcome" data-module="welcome">
<div class="inner">
  <h1 class="starred dark"><span>Welcome to ...</span></h1>

  <div class="choices">
    <div class="choice">
      <a href="http://www.alink/account/validate/driver" class="btn btn-primary">Become a xxxxx</a>
    </div>

    <span class="or"><span>Or</span></span>

    <form action="http://www.alink/welcome" method="post" class="choice" data-response-type="json">
              <input type="text" name="plate_number" id="car_plate_validation_plate_number" value="" maxlength="8" class="plate required numberplate" placeholder="Enter number plate">

      <button type="submit" class="btn btn-primary">Become an yyyyy</button>

      <div class="invalid-message inline-modal" data-behavior="modal">
        <h1>Sorry - you are not eligible to join the company</h1>


        <p>See <a href="#">am I eligile?</a> for full eligibility critera.</p>
      </div>
    </form>
  </div>

2 个答案:

答案 0 :(得分:1)

您可以使用XPath查找几乎所有元素,我不会经常使用它,但在您的情况下(没有任何ID)您可能需要经常使用它:

IWebElement element = driver.FindElement(By.XPath, "//*[text='Welcome in ...']");

这将为您提供任何类型的第一个元素,其中包含“Welcome in ...”中的文本

为了检查您是否在某个页面上,我猜您必须搜索该页面独有的元素,而不是其他页面。

如果您想要更具体的示例,则需要向我们展示一些HTML。

答案 1 :(得分:0)

html示例:

    <div class="site-body m-welcome" data-module="welcome">
    <div class="inner">
        <h1 class="starred dark"><span>Welcome to ...</span></h1>

        <div class="choices">
            <div class="choice">
                <a href="http://www.alink/account/validate/driver" class="btn btn-primary">Become a xxxxx</a>
            </div>

            <span class="or"><span>Or</span></span>

            <form action="http://www.alink/welcome" method="post" class="choice" data-response-type="json">
                                <input type="text" name="plate_number" id="car_plate_validation_plate_number" value="" maxlength="8" class="plate required numberplate" placeholder="Enter number plate">

                <button type="submit" class="btn btn-primary">Become an yyyyy</button>

                <div class="invalid-message inline-modal" data-behavior="modal">
                    <h1>Sorry - you are not eligible to join the company</h1>


                    <p>See <a href="#">am I eligile?</a> for full eligibility critera.</p>
                </div>
            </form>
        </div>