gpt4 book ai didi

javascript - Selenium 单击可以工作,但无法获取下一个窗口上的元素

转载 作者:太空宇宙 更新时间:2023-11-03 17:08:45 24 4
gpt4 key购买 nike

我正在使用 Angularjs ui-routes,我有一个链接如下。

<a ui-sref="devs" href="#/devs"> Devs</a>

我的代码如下

from selenium import webdriver

driver = webdriver.Chrome('selenium-tests/chromedriver')

driver.get("http://localhost")

menu = driver.find_element_by_link_text('Devs')

menu.click()

print (driver.current_url)

driver.close()

点击后,网址应为 http://localhost/#/dev我也可以看到浏览器中的窗口发生变化,但是当我打印时它仍然是 http://localhost ,

我已经尝试过窗口句柄,但它不起作用,任何帮助将不胜感激。

最佳答案

给它时间和 wait更改 URL。

例如,您可以等待页面标题等于“Devs”(假设是这种情况):

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# ...

menu.click()

wait = WebDriverWait(driver, 10)
wait.until(EC.title_is("Devs"))

print(driver.current_url)

或者,等待 URL 等于所需的 URL:

wait = WebDriverWait(driver, 10)
wait.until(lambda driver: driver.current_url == "http://localhost/#/dev")
<小时/>

或者,您可以尝试增加页面加载时间:

driver.set_page_load_timeout(20)
<小时/>

为了调试问题,请打印出等待期间检查的当前网址:

def wait_for_url(driver):
print(driver.current_url)
return driver.current_url == "http://localhost/#/dev"

wait = WebDriverWait(driver, 10)
wait.until(wait_for_url)

关于javascript - Selenium 单击可以工作,但无法获取下一个窗口上的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34341004/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com