2014-11-23 3 views
1

В настоящее время я работаю над веб-автоматизацией через Selenium.Как перейти к динамически загруженной ссылке?

У меня есть HTML-файл, где соответствующая часть заключается в следующем:

<table> 
    <tbody> 
     <tr> 
      <td class="tabon" nowrap=""> 
       <div class="tabon"> 
        <a id="tab" href="(long dynamically generated string)"> 
         <b>Main Page</b> 
        </a> 
       </div> 
      </td> 
      <td class="taboff" nowrap=""> 
       <div class="taboff"> 
        <a id="tab" href="(another long string)">Info</a> 
       </div> 
      </td> 
     </tr> 
    </tbody> 
</table> 

Я хочу, чтобы иметь возможность получить доступ к второй вкладке. Использование Selenium я не могу на самом деле «щелкнуть» по тегу div.

try: 
     browser.find_element_by_xpath(
      '//table/tbody/tr/td[2]/div/a').click() 
    except NoSuchElementException: 
     print ('error') 

Это всегда приводит к ошибке. Это связано с тем, что, когда тег div взаимодействует с ним, он нажимает на привязку URL-адреса, которая меняет div таким образом, что тег clicked on имеет свойство «tabon». Как Selenium имитирует это?

EDIT: Я пренебрег тем, что класс с «tabon» имеет заголовок страницы в отдельном жирном теге.

+0

Является ли вкладка «информация» видимой на веб-странице? – Subh

+0

Да. http://picpaste.com/Untitled-XD1Gydt3.png – franklin

+1

Похоже, вы хотите нажать на вкладку «Моя информация». Правильно ли? – Subh

ответ

1

Попробуйте этот код, в случае, если на вкладке «Моя информация» отображается на веб-странице:

browser.find_element_by_xpath("//a[.='My Info']").click() 

Это будет нажать на элемент с тегом «а» и имеющий точную innerHTML/текст в качестве Моя информация.

0

Вы должны проездом нажмите на a теге не на div и в дополнение к решению Субх условии, что вы можете использовать в качестве .taboff acssselector. Этот селектор доходит до a тэг со второго td склейки html