我正在网站上进行自动化。
我在此站点上进行搜索,您的结果返回一个链接供我访问,单击该链接可打开一个新标签,但我想打开一个新窗口
这是我点击链接的代码
WebDriverWait(self.browser, timeout=60).until(EC.element_to_be_clickable((By.XPATH, '//*[@id="tabelaResultado"]/div[1]/table/tbody[1]/tr/td[1]/span/a'))).click()
我尝试使用SHIFT键盘快捷键
WebDriverWait(self.browser, timeout=60).until(EC.element_to_be_clickable((By.XPATH, '//*[@id="tabelaResultado"]/div[1]/table/tbody[1]/tr/td[1]/span/a'))).send_keys(Keys.SHIFT).click()
但是我有结果错误
AttributeError:'NoneType'对象没有属性'click'
有没有一种方法可以配置chrome,因此每次单击链接都会打开一个新窗口?
from selenium.webdriver.chrome.options import Options
答案 0 :(得分:1)
send_keys()
作为无返回值,因此您得到None
。您可以使用ActionChains
from selenium.webdriver import ActionChains
link = WebDriverWait(self.browser, timeout=60).until(EC.element_to_be_clickable((By.XPATH, '//*[@id="tabelaResultado"]/div[1]/table/tbody[1]/tr/td[1]/span/a')))
ActionChains(driver).key_down(Keys.SHIFT, link).click().key_up(Keys.SHIFT).perform()
答案 1 :(得分:1)
我认为您必须这样发送 Shift 和 Enter :
WebDriverWait(self.browser, timeout=60).until(EC.element_to_be_clickable((By.XPATH, '//*[@id="tabelaResultado"]/div[1]/table/tbody[1]/tr/td[1]/span/a'))).send_keys(Keys.SHIFT,Keys.ENTER)