如何在selenium python中单击2个div中的<a>按钮?

2024-09-29 18:40:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图使selenium单击Button1,但由于某些原因,我得到以下错误:

selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element: Button1

我相信发生错误是因为它在div/ul/li标记中,但我也不知道如何做,我被卡住了

HTML:

<div id="contentArea">
<div class="pageNavigation" id="pageNavigation">
    <ul>
        <li>

            <a href="#">Button1</a>

        </li>
        <li class="last">       

            <a href="#">Button2</a> 
                                            
        </li>
    </ul>
</div>
</div>

Python代码:

from selenium import *

driver = webdriver.Firefox()
driver.set_window_size(1366, 768, driver.window_handles[0])
driver.get("https://localhost/mypage/index.php")
driver.find_element_by_link_text('Button1').click()

编辑:我发现html是通过javascript生成的。我的错


Tags: dividdriverselenium错误原因lielement
1条回答
网友
1楼 · 发布于 2024-09-29 18:40:57

您可以尝试以下方法

driver.find_element_by_xpath("//*[text()='Button1']").click()

或者像您所说的那样尝试在div/ul/li

driver.find_element_by_xpath("//div[@class='pageNavigation']/ul[1]/li[1]/a[1]").click()

如果出于某种原因,这不起作用,请尝试使用ActionChains

For that, you need to import the module

from selenium.webdriver.common.action_chains import ActionChains

然后使用它单击元素,
在某些情况下,这是我的救世主

action = ActionChains(driver)
element = driver.find_element_by_xpath("//*[text()='Button1']")
action.click(on_element=element).perform()

相关问题 更多 >

    热门问题