i'm trying remotely log twitter , tweet using selenium , chrome webdriver can't seem before else want test if can write username , password areas cant that.
here code:
from selenium import webdriver selenium.webdriver.common.keys import keys driver = webdriver.chrome() driver.get("https://twitter.com") elem = driver.find_element_by_name("session[username_or_email]") elem.send_keys("test") elem.send_keys(keys.return) when try opens command prompt run chromedriver.exe opens chrome window nothing else happens , gives me error message:
traceback (most recent call last): file "c:\python27\project\auth2.py", line 10, in <module> elem.send_keys("test") file "c:\python27\lib\site-packages\selenium\webdriver\remote\webelement.py", line 162, in send_keys self._execute(command.send_keys_to_element, {'value': typing}) file "c:\python27\lib\site-packages\selenium\webdriver\remote\webelement.py", line 228, in _execute return self._parent.execute(command, params) file "c:\python27\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 165, in execute self.error_handler.check_response(response) file "c:\python27\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 152, in check_response raise exception_class(message, screen, stacktrace) nosuchwindowexception: message: u'no such window: target window closed\nfrom unknown error: web view not found\n (session info: chrome=26.0.1410.64)\n (driver info: chromedriver=0.8,platform=windows nt 5.1 sp3 x86)' can tell me what's problem , how fix it!
yes, find_element_by_id, find_element_by_xpath or find_element_by_css_selector should used in particular case.
i suspect elem = driver.find_element_by_name("session[username_or_email]") won't work because of square brackets.
for else needs handle square brackets using selenium, using css selector or xpath should easier shown in following example (square brackets in class names in example):
<label class="username js-username"> <span>username or email</span> <input class="session[username_or_email]" type="text" autocomplete="on" /> </label> # suspect won't work? driver.find_element_by_class_name("session[username_or_email]") # won't work, special meaning of square brackets in css selector driver.find_element_by_css_selector(".session[username_or_email]") # use these driver.find_element_by_css_selector("[class='session[username_or_email]']") driver.find_element_by_xpath("//*[@class='session[username_or_email]']") # same usual
Comments
Post a Comment