2017-02-22 2 views
1

Вот исходный код страницы:Как найти этот элемент из XPATH

<div id="accounts-menu" class="yui3-menu menu yui3-menu-horizontal menu-horizontal yui3-splitbuttonnav " role="menu"> 
<div class="yui3-menu-content" role="presentation" id="yui_3_18_1_1_1487717925042_903"> 
    <ul class="accounts-menu first-of-type" role="presentation" id="yui_3_18_1_1_1487717925042_902"> 


    <li class=" account-company-item-menu yui3-menuitem" role="presentation"> 

    <a class="yui3-menuitem-content" href="/account/company" title="" role="menuitem" tabindex="-1" id="yui_3_18_1_1_1487717925042_750"> 
     <div class="menu-label">Company</div> 
    </a> 
    </li> 


    <li class="selected account-systems-management-menu yui3-menuitem account-selected" role="presentation" id="yui_3_18_1_1_1487717925042_901"> 

    <a class="yui3-menuitem-content" href="/account/company/computers" title="Manage computer systems for Company" role="menuitem" tabindex="0" id="yui_3_18_1_1_1487717925042_752"> 
     <div class="menu-label">Computers</div> 
    </a> 
    </li> 



    <li class="account-support-menu yui3-menuitem" role="presentation" id="yui_3_18_1_1_1487717925042_922"> 

    <a class="yui3-menuitem-content" href="http://support.canonical.com" title="Get support for Company" role="menuitem" tabindex="-1" id="yui_3_18_1_1_1487717925042_754"> 
     <div class="menu-label">Support</div> 
    </a> 
    </li> 



    </ul> 
</div> 

В основном это один:

  <div class="menu-label">Computers</div> 

Я хотел бы найти связанный текст «Компьютеры» и щелкните по нему с помощью селена. После того, как вы нашли много ресурсов и обучающих программ о xPath в Интернете, все еще не удалось найти элемент:/

Удалось найти что-то близкое: //*[@title=\"Manage computer systems for Company\"]//*[text()='Computers', это найдет массив, содержащий этот элемент, который еще не существует.

Заранее спасибо.

ответ

2

Попробуйте любой из них ниже XPath.

Объяснение: Использование class атрибут тега div вместе с text методом.

//div[@class='menu-label'][contains(text(), 'Computers')] 

ИЛИ

Пояснение: Использование text метод div тега.

//div[contains(text(), 'Computers')] 

ИЛИ

Объяснение: Использование title атрибут a тега. и двигаться вперед с тегом div.

//a[@title='Manage computer systems for Company']/div 

ИЛИ

Объяснение: Использование href атрибут a тега. и двигаться вперед с тегом div.

//a[@href='/account/company/computers']/div 

ИЛИ

Объяснение: Использование id атрибут a тега. и двигаться вперед с тегом div.

//a[@id='yui_3_18_1_1_1487717925042_752']/div 
0

, если вам это нужно, чтобы быть связано с <a> с title="Get support for Company", то это должно быть что-то вроде:

//a[@title="Manage computer systems for Company"]/div[@class='menu-label'] 

если нет, то всегда лучше запросить по идентификатору:

//li[@id="yui_3_18_1_1_1487717925042_901"]//div[@class='menu-label'] 
1

You может добавить [1], чтобы получить первый соответствующий узел:

//*[@title="Manage computer systems for Company"]//*[text()='Computers'][1] 
0

После XPath можно использовать, чтобы добраться до необходимого контроля:

//a[@title='Manage computer systems for Company']/div[text()='Computers'] 
Смежные вопросы