如何关闭Selenium中的弹出窗口

时间:2016-05-02 10:35:09

标签: python selenium xpath web-scraping popup

无法关闭http://www.cargo.lt/加载后出现的弹出窗口。这就是我所拥有的:

from selenium import webdriver
import time

driver = webdriver.Firefox()
driver.get('http://www.cargo.lt/asp/index.asp?')
time.sleep(10)
driver.find_element_by_xpath('/html/body/div[36]/div/a').click()

我不太熟悉如何编写自定义xpath / css路径,现在只需单击Inspect元素并复制xpath。我做错了什么?

修改 多么愚蠢的错误。没有意识到,当元素不在屏幕上时,Selenium无法点击它。刚添加了driver.maximize_window(),我所有的问题都消失了。谢谢大家的回答。不幸的是我还不能投票,因为我没有足够的积分......

4 个答案:

答案 0 :(得分:1)

我试过你的代码工作正常我不知道你有什么问题但是 试试这个:driver.implicitly_wait(10) 投诉:

time.sleep(10)

答案 1 :(得分:0)

您好关闭弹出/提醒请使用

driver.switch_to_alert()

然后使用

driver.find_element_by_xpath('/html/body/div[36]/div/a').click()

//如果你已经复制了粘贴的表格firebug,那么我猜是正确的

或者如果你的xpath不正确则使用

driver.find_element_by_xpath("//a[@id='advert_x']").click()

答案 2 :(得分:0)

您可以使用python -Selenium中的预定义命令切换到警告框。

from selenium import webdriver

driver = webdriver.Firefox()
driver.get('http://www.cargo.lt/asp/index.asp?')
alrt = driver.switch_to_alert()
alrt.accept()

希望它有所帮助。

答案 3 :(得分:0)

您可以使用 chrome 选项

在Python中,你可以使用

chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument("--disable-notifications")
webdriver.Chrome(os.path.join(path, 'chromedriver'),chrome_options=chrome_options)

在Java中

ChromeOptions options = new ChromeOptions();
options.addArguments("--disable-popup-blocking");
options.addArguments("test-type");
ChromeDriver driver = new ChromeDriver(options);