2017-11-25 2 views
0

Ich verstehe nicht, warum Selen meine Daten nicht in Amazon Search eingeben wird. Ich weiß, es öffnet den Chrome-Browser zu Amazon, aber es wird nicht die Suchleiste ausfüllen. Irgendwelche Ideen, was ist falsch mit meinem CodeVerwendung von Selen auf Amazon

from lxml import html, etree 
 
import csv,os,json 
 
import requests 
 
from time import sleep 
 
from selenium import webdriver 
 

 

 

 
textsearch = "Taco Bell Sauce" 
 

 
browser = webdriver.Chrome('/home/path/Documents/Selenium/chromedriver') 
 
browser.get("http://www.amazon.com/") 
 
content = browser.page_source 
 

 
doc = html.fromstring(content) 
 
search = selenium.find_element_by_id("twotabsearchtextbox") 
 

 
search.send_keys(textsearch) 
 

 
search.selenium.find_element_by_id("nav-search-submit-text").click()

Korrekturen, wie ich diese Arbeit machen kann

Antwort

2

Das ist einfach, weil Sie die WebDriver Instanz behandeln sollte, dass Sie erstellt haben - browser statt selenium das ist Python-Bibliothek, die ersetzen Also nur

webdriver ...

enthält

search = selenium.find_element_by_id("twotabsearchtextbox") 

mit

search = browser.find_element_by_id("twotabsearchtextbox") 

P. S. Auch ersetzen

search.selenium.find_element_by_id("nav-search-submit-text").click() 

mit

browser.find_element_by_id("nav-search-submit-text").click() 

oder

search.submit() 
0

Sie benötigen ein paar Anpassungen in Ihrem Code zu machen, wie folgt:

Die webdriver Instanz wird zugewiesen browser also während der Verwendung find_element müssen Sie verwenden die browser. Die Search Box und die Search Button innerhalb Eingangs-Tag so besser, eine xpath oder eine css_selector zu konstruieren, wie folgt:

from lxml import html, etree 
import csv,os,json 
import requests 
from time import sleep 
from selenium import webdriver 

textsearch = "Taco Bell Sauce" 
browser = webdriver.Chrome(executable_path=r'C:\Utility\BrowserDrivers\chromedriver.exe') 
browser.get("http://www.amazon.com/") 
content = browser.page_source 
doc = html.fromstring(content) 
search = browser.find_element_by_xpath("//input[@id='twotabsearchtextbox']") 
search.send_keys(textsearch) 
search.find_element_by_xpath("//input[@class='nav-input']").click() 
Verwandte Themen