Как нажать на ссылку внутри span с помощью xpath - PullRequest
0 голосов
/ 26 марта 2019

Используя xpath, sélénium не распознает элемент, какой правильный xpath?

HTML:

<a class="xmi" onclick="this.focus();return false; "href="#">
 <span title="">SITE A</span>
</a>

Мой файл локатора XML:

<domElements>
   <name>Site_A</name>
   <locators>
      <type>XPATH</type>
      <value>//span[contains(@title,'SITE A')]</value>
      <priority>0</priority>
   </locators>
      </domElements> 

Java-код, вызывающий мой локатор:

this.locate("Site_A").click();

}

}

Ответы [ 2 ]

0 голосов
/ 26 марта 2019

SITE A - это не атрибут value , а innerHTML , поэтому вам необходимо:

<domElements>
   <name>Site_A</name>
   <locators>
      <type>XPATH</type>
      <value>//span[@title and text()='SITE A']</value>
      <priority>0</priority>
   </locators>
</domElements> 

В качестве альтернативы вы также можете изменить <value> для включения родительского узла в виде:

<domElements>
   <name>Site_A</name>
   <locators>
      <type>XPATH</type>
      <value>//a[@class='xmi']/span[@title and text()='SITE A']</value>
      <priority>0</priority>
   </locators>
</domElements> 
0 голосов
/ 26 марта 2019

SITE A это не заголовок (в данном случае это пустая строка), это текст элемента.Используйте text() или ., чтобы найти его

//span[contains(., 'SITE A')]

Если элемент находится внутри <iframe>, вам нужно сначала перейти к нему

driver.switchTo().frame("afr::PushIframe");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...