4

I am trying to click a link by:

driver.find_element_by_css_selector("a[href='javascript:openhistory('AXS0077')']").click()

This works nice if the link opens in a new window but in this case the link actually opens a pop up window. When I try clicking the link with this method, using selenium it gives me an error:

Message: u"The given selector a[href='javascript:openhistory('AXS0077')'] is either invalid or does not result in a WebElement. The following error occurred:\nInvalidSelectorError: An invalid or illegal selector was specified"

Is this not the right way ? because I think there may be some different way to deal with pop windows.

1
  • 2
    Try driver.find_element_by_css_selector("""a[href='javascript:openhistory("AXS0077")']""").click() or driver.find_element_by_css_selector("""a[href="javascript:openhistory('AXS0077')"]""").click() Commented Jun 7, 2014 at 9:57

2 Answers 2

2
+50

Your css selector could be more generic, perhaps:

driver.find_element_by_css_selector("a[href^='javascript']").click()

You've got all kinds of crazy overlapping quotation marks there. You're probably confusing it.

Sign up to request clarification or add additional context in comments.

Comments

0

I have more success using find_by_xpath

Take this site as an example popups

I use firebug to inspect the element and get the xpath.

Then using the following works perfectly.

from selenium import webdriver

baseurl="http://www.globalrph.com/davescripts/popup.htm"

dr = webdriver.Firefox()
dr.get(baseurl)
dr.find_element_by_xpath("/html/body/div/center/table/tbody/tr[7]/td/div/table/tbody/tr/td[2]/div[1]/form/table/tbody/tr[4]/td[1]/a").click()

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.