发送密钥在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'
答案 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()加载该页面。