Selenium发送密钥不起作用

时间:2017-03-11 21:56:13

标签: python selenium

发送密钥在mac os x上不起作用,或者我做错了。也许我引用了错误的键。

我正在尝试点击每个链接以在新标签页中打开

有什么建议吗?

Main.py

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



driver = webdriver.Chrome()
driver.get('https://orlando.craigslist.org/search/cta')

owl = driver.find_element_by_xpath('//*[@id="sortable-results"]/ul/li/p/a')
res = 1
size = len(driver.find_elements_by_xpath('//*[@id="sortable-results"]/ul/li/p/a'))

def run():
    for i in range(0, size):
        owl = driver.find_elements_by_xpath('//*[@id="sortable-results"]/ul/li/p/a')
        owl[i].click().send_keys(Keys.COMMAND + 't')
        driver.find_element_by_xpath('/html/body/section/header/nav/ul/li[3]/p/a').click()
        if i == 1:
            break


if __name__ == '__main__':
    run()

这是错误

Traceback (most recent call last):
  File "main.py", line 24, in <module>
    run()
  File "main.py", line 17, in run
    owl[i].click().send_keys(Keys.COMMAND + 't')
AttributeError: 'NoneType' object has no attribute 'send_keys'

1 个答案:

答案 0 :(得分:0)

根据我在.Net上使用Selenium WebDriver的经验,.click()不返回元素。它什么都不返回。它会导致单击一个元素,在这种情况下会导致在当前驱动程序实例中加载新页面。我想这就是这里发生的事情。

我建议您作为替代方案,收集所有&#34; href&#34;所有这些中的属性&lt; a&gt;数组中的元素,然后为每个元素打开一个新选项卡,并使用此处的答案how to open a link in new tab (chrome) using selenium webdriver?切换到新选项卡。一旦您打开一个新标签并切换到它,请使用driver.get()加载该页面。