Cri*_*Jam 5 python selenium selenium-chromedriver selenium-webdriver
我需要在测试中打开一个新的浏览器选项卡,并且我读到最好的方法是将适当的密钥发送到浏览器。我使用的是 Windows,所以我使用ActionChains(driver).send_keys(Keys.CONTROL, "t").perform(),但是,这没有任何作用。
我尝试了以下方法来测试Keys.CONTROL是否正常工作:
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keys import Keys
def test_trial():
driver = webdriver.Chrome()
driver.get("https://www.google.com/")
ActionChains(driver).send_keys(Keys.CONTROL, "v").perform()
Run Code Online (Sandbox Code Playgroud)
这确实将我在剪贴板中复制的所有内容传递到默认焦点的 Google 搜索框。
这是我想使用的,但不起作用:
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keys import Keys
def test_trial():
driver = webdriver.Chrome()
driver.get("https://www.google.com/")
ActionChains(driver).send_keys(Keys.CONTROL, "t").perform()
Run Code Online (Sandbox Code Playgroud)
浏览器似乎没有发生任何事情,没有打开新选项卡,没有对话框,没有通知。有人知道为什么吗?
尝试一下这个 java 脚本执行器,它应该可以工作。
link="https://www.google.com"
driver.execute_script("window.open('{}');".format(link))
Run Code Online (Sandbox Code Playgroud)
Edited带有窗口句柄的代码。
driver=webdriver.Chrome()
driver.get("https://www.google.com")
window_before = driver.window_handles[0]
link="https://www.google.com"
driver.execute_script("window.open('{}');".format(link))
window_after = driver.window_handles[1]
driver.switch_to.window(window_after)
driver.find_element_by_name("q").send_keys("test")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4797 次 |
| 最近记录: |