webdriver.Chrome 怎么跟踪跳转页面
时间: 2023-06-27 09:00:12 浏览: 195
可以使用webdriver中的get()方法来跳转页面并且跟踪页面。下面是一个Python的示例代码:
```
from selenium import webdriver
# 创建Chrome浏览器的webdriver对象
driver = webdriver.Chrome()
# 跳转到目标页面
driver.get('https://www.example.com')
# 在页面中查找元素,并且点击链接进行跳转
element = driver.find_element_by_link_text('Click Here')
element.click()
# 等待页面加载完成
driver.implicitly_wait(10)
# 获取当前页面的URL
print(driver.current_url)
# 关闭浏览器
driver.quit()
```
在上面的代码中,我们首先创建了Chrome浏览器的webdriver对象,然后使用get()方法跳转到目标页面。接着,我们使用find_element_by_link_text()方法查找页面中的链接元素,并且使用click()方法点击该链接进行跳转。最后,我们使用current_url属性获取当前页面的URL,并且关闭浏览器。通过以上方法,我们可以跟踪页面的跳转。
相关问题
webdriver.Chrome 自动跳转的链接后 还能获取页面吗
可以的,跳转到新的页面后,可以使用webdriver的switch_to.window()方法切换到新打开的窗口,然后就可以继续获取新页面的信息了。下面是一个Python的示例代码:
```
from selenium import webdriver
# 创建Chrome浏览器的webdriver对象
driver = webdriver.Chrome()
# 跳转到目标页面
driver.get('https://www.example.com')
# 在页面中查找元素,并且点击链接进行跳转
element = driver.find_element_by_link_text('Click Here')
element.click()
# 等待页面加载完成
driver.implicitly_wait(10)
# 切换到新打开的窗口
handles = driver.window_handles
driver.switch_to.window(handles[-1])
# 获取当前页面的URL
print(driver.current_url)
# 关闭浏览器
driver.quit()
```
在上面的代码中,我们首先创建了Chrome浏览器的webdriver对象,然后使用get()方法跳转到目标页面。接着,我们使用find_element_by_link_text()方法查找页面中的链接元素,并且使用click()方法点击该链接进行跳转。在跳转到新页面后,我们使用window_handles属性获取所有打开的窗口的句柄,然后使用switch_to.window()方法切换到最后一个窗口。最后,我们使用current_url属性获取当前页面的URL,并且关闭浏览器。通过以上方法,我们可以在跳转到新页面后继续获取新页面的信息。
E assert 'Dashboard - Leon CRM' in 'Leon CRM' E + where 'Leon CRM' = <selenium.webdriver.chrome.webdriver.WebDriver (session="1e02c84b8e24f72b5baf7d649b4e8925")>.title
这个断言失败的原因是 `'Leon CRM'` 这个字符串不包含 `'Dashboard - Leon CRM'` 这个子串,因此断言失败。原因是在断言语句中,被断言的字符串应该是页面标题,而不是字符串 `'Leon CRM'`。这个问题很可能是由于在调用 `test01_login_method` 函数时没有成功跳转到登录后的页面导致的。
为了解决这个问题,我们需要在 `test01_login_method` 函数中加入等待页面跳转的代码,确保登录成功后能够正确地跳转到下一个页面。可以使用 `WebDriverWait` 方法等待页面跳转,具体的代码如下所示:
```
class Test_Login_method(BasePage):
def test01_login_method(self, user, passwd):
self.get(LoginResources.URL_leons.value)
self.send_keys(LoginResources.LOC_账号, user)
self.send_keys(LoginResources.LOC_密码, passwd)
self.click(LoginResources.LOC_管理员)
self.click(LoginResources.LOC_登录按钮)
# 等待页面跳转
WebDriverWait(self.driver, 10).until(EC.title_contains("Dashboard - Leon CRM"))
return self.driver
def test02_login(self, driver, arg):
page = Test_Login_method(driver)
res = page.test01_login_method(arg[0], arg[1])
assert 'Dashboard - Leon CRM' in res.title
```
在这个示例中,我们使用 `WebDriverWait` 方法等待页面标题包含字符串 `"Dashboard - Leon CRM"`,最长等待时间为 10 秒。如果等待超时仍未跳转到正确的页面,则会抛出一个 `TimeoutException` 异常,测试用例会自动失败。这样就可以确保登录成功后能够成功跳转到下一个页面,从而避免了断言失败的情况。
阅读全文