Webscraping - 点击高级搜索选项卡将不会最大化该选项卡。

问题描述 投票:0回答:1

我正在浏览这个网站 https:/portal.betterwork.orgtransparencycompliance。 我试图在高级搜索 "工厂 "框中输入一个特定工厂的名称。

我注意到,如果我不在Selenium控制的浏览器中手动点击这个框,我就无法输入任何工厂名称,系统就会停止(或崩溃)。

这是我目前的情况

driver = webdriver.Chrome(executable_path=r"C:\webdrivers\chromedriver.exe")
driver.get("https://portal.betterwork.org/transparency/compliance#")
driver.implicitly_wait(20)

element = driver.find_element_by_id("pnlHdAdvanceSearch")
ActionChains(driver).move_to_element(element).click(element).perform()
element = driver.find_element_by_id("txtSearchFactory")
ActionChains(driver).move_to_element(element).click(element).perform()
element.send_keys('PT Glory Industrial Semarang Demak')
element = driver.find_element_by_id("btnSearchData")
element.send_keys(Keys.RETURN)
elemnts = find_element_by_tag_name("iframe")
print(elemnts) 

这里到底有什么问题?

谢谢!我正在浏览这个网站https:/portal.betterwork.orgtransparencycompliance,我试图在高级搜索 "工厂 "内输入特定的工厂名称。

python selenium click
1个回答
1
投票

需要适当的同步来执行你需要的动作

  1. 一旦导航到你的URL,它开始显示2个加载器,所以你需要等待,直到他们两个被隐藏。
  2. 展开高级搜索>输入文本并点击搜索按钮。

使用下面的代码。我检查了一下,它的工作完美无瑕。

driver.get('https://portal.betterwork.org/transparency/compliance')

wait = WebDriverWait(driver, 45)
wait.until(EC.invisibility_of_element((By.ID, "loader-wrapper")))
wait.until(EC.invisibility_of_element((By.CSS_SELECTOR, "div.k-loading-mask")))
input_text = 'Namlee International Co. Ltd.'
driver.find_element_by_id("pnlHdAdvanceSearch").click()
driver.find_element_by_id("txtSearchFactory").send_keys(input_text)
driver.find_element_by_id("btnSearchData").click()
view_button = "//tr[contains(.,'{}')]/td/a"
time.sleep(3)
wait.until(EC.visibility_of_element_located((By.XPATH, view_button.format(input_text)))).click()
© www.soinside.com 2019 - 2024. All rights reserved.