Событие клика не происходит в Python с веб-драйвером Selenium - PullRequest
0 голосов
/ 05 мая 2018

Друзья снова сталкиваются с проблемами в следующих сценариях, использующих Python с веб-драйвером Selenium: -

  1. Событие клика не происходит при клике по названию ссылки как "Area Rank Web". HTML-код для отчета MSTR выглядит следующим образом: -

    <td class="mstrLargeIconViewItemText" rowspan="1" colspan="1" cx="[2,1,0,5,1,6,7]" cxid="folderAllModes_cmm" oid="600E4BA841AC84797221F7BB5262C3E0" oty="55"><a title="Run Document" class="mstrLargeIconViewItemLink" onclick="return submitLink(this, event);" href="Main.aspx?evt=2048001&amp;src=Main.aspx.2048001&amp;visMode=0&amp;currentViewMedia=1&amp;documentID=600E4BA841AC84797221F7BB5262C3E0" runasexpress="1" alt="Run Document"></a><div class="mstrLargeIconViewItemName"><span sty="nm"><a title="Area Rank Web" class="mstrLink" onclick="return submitLink(this, event);" href="Main.aspx?evt=2048001&amp;src=Main.aspx.2048001&amp;visMode=0&amp;currentViewMedia=1&amp;documentID=600E4BA841AC84797221F7BB5262C3E0" runasexpress="1">Area Rank Web</a></span></div><div class="mstrLargeIconViewItemOwner"><label>Owner:</label><span><div title="Administrator" class="owner">Administrator</div></span></div><div class="mstrLargeIconViewItemModified"><label>Modified:</label><span><div timestamp="1525148536000">5/1/18 4:22:16 AM</div></span></div><div class="mstrLargeIconViewItemDescription"></div><div></div><div class="mstrLargeIconViewItemActions"><span><a class="mstrLink" onclick="if (!mstrFolderActions.checkACL(this, event, '600E4BA841AC84797221F7BB5262C3E0', 55)) return; return submitLink(this, event);" href="Main.aspx?evt=3032&amp;src=Main.aspx.3032&amp;objectType_3032=55&amp;objectID_3032=600E4BA841AC84797221F7BB5262C3E0" ty="sub">Subscriptions</a></span></div></td>
    

    Я пробовал следующие способы, но не добился успеха:

    #driver.find_element_by_xpath(".//*[title='Area Rank Web']").click();
    #driver.find_elements_by_class_name (("mstrLargeIconViewItemName") and contains(.,'Area Rank Web')).click()
    #driver.find_element_by_id("600E4BA841AC84797221F7BB5262C3E0").click()
    #driver.find_element_by_css_selector("600E4BA841AC84797221F7BB5262C3E0").click()
    #WebDriverWait(driver, 5).until(EC.element_to_be_clickable((By.XPATH, "//div[@class='mstrLargeIconViewItemText']/span[@class='mstrIcon-lg' and contains(.,'Area Rank Web')]"))).click()
    

    2. Есть блок, имеющий два значения: - ОБЛАСТЬ, РАЙОН. Вы можете выбрать значение больше значения, а затем нажать кнопку со стрелкой, которая перемещает выбранный контент в правую часть блока, а затем нажать кнопку отправки

    .

    HTML код:

    <div title="AREA" class="mstrListBlockItemSelected" style="margin-top: 0px;"><div class="mstrBGIcon_ae mstrListBlockItemName" style="background-position: 2px 50%; padding-left: 23px;">DSI</div></div>
    
    <div title="DISTRICT" class="mstrListBlockItem" style="margin-top: 0px;"><div class="mstrBGIcon_ae mstrListBlockItemName" style="background-position: 2px 50%; padding-left: 23px;">ONC</div></div>
    

Попробовал следующие способы, но событие нажатия не происходит

1 Ответ

0 голосов
/ 07 мая 2018

Можете ли вы попробовать использовать link_text /partal_link_text вместо этого?

driver.find_element_by_link_text('Area Rank Web').click()

OR

driver.find_element_by_partial_link_text('Area Rank Web').click()

Кроме того, попробуйте явно подождать, прежде чем нажимать на ссылку.

WebDriverWait(self.driver, 10).until(expected_conditions.element_to_be_clickable(
             (By.LINK_TEXT, 'Area Rank Web')
))

если все вышеперечисленное не работает, используйте метод execute_script для вызова события щелчка по ссылке

link = driver.find_element_by_link_text('Area Rank Web')
driver.execute_script('arguments[0].click();', link)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...