带有send_keys的AttributeError

时间:2018-04-03 06:02:15

标签: python selenium selenium-webdriver webdriver

我正在尝试使用以下代码打开新标签中的链接:

great_per=driver.find_element_by_partial_link_text('Know more Thoughts')
person_link=great_per.get_attribute("href")

person_link.send_keys(Keys.CONTROL, 't')

当我尝试使用find_element找到对象时,它显示如下错误:

  

'unicode'对象没有属性'send_keys'

它也显示以下错误

  

list对象没有属性'send_keys'

那么有人可以帮我解决这个问题吗?

2 个答案:

答案 0 :(得分:0)

问题不在于找到元素。您只能在webElement上执行send_keys。在这里,您在元素的字符串(值/属性)上执行send_keys。

person_link=great_per.get_attribute("href")

返回一个值。不是webElement。

如果您想发送密钥,则应在great_per上进行。因为这是在find_element_by_

之后返回的webElement
great_per=driver.find_element_by_partial_link_text('Know more Thoughts')
person_link.send_keys(Keys.CONTROL, 't')

答案 1 :(得分:0)

要在新标签页中打开链接,您必须使用ActionChains实现,并且可以使用以下代码块:

from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keys import Keys

# code block
action = ActionChains(driver)
great_per = driver.find_element_by_partial_link_text("Know more Thoughts")
action.key_down(Keys.CONTROL).click(great_per).key_up(Keys.CONTROL).perform()