簡體   English   中英

硒Webdriver在頁面上找不到元素

[英]Element not found on the page by selenium Webdriver

我需要檢查在具有復合類的跨度中是否存在特定文本,但硒根本無法在頁面上找到此元素。

我已經嘗試過使用class和xpath,但是找不到。

我需要獲取文本的完整HTML代碼:

<span class="mn-person-info__occupation mn-person-info__occupation--card-layout Sans-13px-black-55%">
      Consultor de RH - HProjekt
</span>

完整的html代碼:

<div class="mn-person-info__card-details mt1">
<a data-control-name="pymk_profile" href="/in/kaique-soares-04798354/" id="ember1053" class="mn-person-info__link ember-view">    <span class="visually-hidden">Nome do usuário</span>
    <span class="mn-person-info__name
        mn-person-info__name--card-layout Sans-15px-black-85%-semibold">
      Kaique Soares
    </span>
    <span class="visually-hidden">Cargo do usuário</span>
    <span class="mn-person-info__occupation
        mn-person-info__occupation--card-layout Sans-13px-black-55%">
      Consultor de RH - HProjekt
    </span>
</a>
    <div class="mn-person-info__shared-insights display-flex justify-center pt1 ph2">
    <button data-control-name="see_all_common_connections" class="mn-person-info__shared-insights-btn Sans-13px-black-55%" data-ember-action="" data-ember-action-1256="1256">
      <span class="mn-person-info__shared-insights-icon svg-icon-wrap"><li-icon aria-hidden="true" type="in-common-icon" size="small"><svg viewBox="0 0 24 24" width="24px" height="24px" x="0" y="0" preserveAspectRatio="xMinYMin meet" class="artdeco-icon"><g class="small-icon" style="fill-opacity: 1">
        <path d="M11,3C9.9,3,8.9,3.4,8,4C5.8,2.3,2.7,2.8,1,5s-1.2,5.3,1,7c0.9,0.6,1.9,1,3,1s2.1-0.4,3-1c2.2,1.7,5.3,1.2,7-1s1.2-5.3-1-7C13.1,3.4,12.1,3,11,3z M1.9,8c0-1.7,1.4-3.1,3.1-3.1c0.6,0,1.2,0.2,1.7,0.5c-1,1.6-1,3.6,0,5.2c-1.4,1-3.4,0.6-4.3-0.8C2.1,9.2,1.9,8.6,1.9,8z M11,11.1c-0.6,0-1.2-0.2-1.7-0.5c1-1.6,1-3.6,0-5.2c1.4-1,3.4-0.6,4.3,0.9s0.6,3.4-0.9,4.3C12.2,10.9,11.6,11.1,11,11.1z"/>
      </g></svg></li-icon></span>
      <span class="mn-person-info__shared-insights-count">
          Fernando Abrantes e mais 76 pessoas
      </span>
    </button>
</div>

</div>

我嘗試了這些方法,甚至進行了等待,但仍然找不到該元素:

String text = driver.findElement(By.className("mn-person-info__occupation.mn-person-info__occupation--card-layout.Sans-13px-black-55%")).getText();
System.out.println(text);

driver.findElement(By.className("mn-person-info__occupation.mn-person-info__occupation--card-layout.Sans-13px-black-55%")).getText();

WebElement text = driver.findElement(By.className("mn-person-info__occupation.mn-person-info__occupation--card-layout.Sans-13px-black-55%")).getText();
System.out.println("text");

By.className方法采用以空格分隔的類,但您使用的是點。

在您的情況下,一堂課就足夠了:

By.className("mn-person-info__occupation--card-layout")

,或使用CSS選擇器:

By.cssSelector(".mn-person-info__occupation--card-layout")

請注意,某些類具有諸如%的非法字符。 對於這些,您必須使用CSS選擇器,並在屬性上添加過濾器:

By.cssSelector(".mn-person-info__occupation--card-layout[class*='Sans-13px-black-55%']")

您可以嘗試使用此xpath嗎?

String content =  driver.findElement(by.xpath("//div[class='mn-person-info__card-details mt1']/a[1]/spam[3]")).getText();

希望這可以幫助。 謝謝。

嘗試這個:

WebElement myelement = driver.findElement(By.xpath("//div[@class='mn-person-info__card-details mt1']a[1]/span[3]"));

//Now get the text.
String mytext = descriptionEle.getText();

如果您嘗試如何

String content =  driver.findElement(by.xpath("//span[class='mn-person-info__occupation']")).getText();

該問題是由“按”選擇器引起的。 看起來笨蛋和硒無法應付。 硒不喜歡選擇器中包含%。

如果您想按類名使用,那么我建議您走一條簡單的路線。

  String text = driver.findElement(By.className("mn-person-info__occupation")).getText();
  System.out.println(text);

或通過使用另一種選擇。

String text2 = driver.findElement(By.className("mn-person-info__occupation--card-layout")).getText();
System.out.println(text2);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM