Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Webscraping-单击高级搜索选项卡不会使选项卡最大化_Python_Selenium_Click - Fatal编程技术网

Python Webscraping-单击高级搜索选项卡不会使选项卡最大化

Python Webscraping-单击高级搜索选项卡不会使选项卡最大化,python,selenium,click,Python,Selenium,Click,我正在浏览此网站,并试图在高级搜索“工厂”框中键入特定工厂的名称 我注意到,如果在浏览器由Selenium控制时不手动单击该框,我将无法键入任何工厂名称,系统将停止(或崩溃) 这就是我目前所拥有的 driver = webdriver.Chrome(executable_path=r"C:\webdrivers\chromedriver.exe") driver.get("https://portal.betterwork.org/transparency/compliance#") drive

我正在浏览此网站,并试图在高级搜索“工厂”框中键入特定工厂的名称

我注意到,如果在浏览器由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) 
这里到底有什么问题


谢谢

需要适当的同步来执行所需的操作

  • 一旦导航到您的URL,它开始显示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()
    

    这太棒了,谢谢!出了什么问题?现在,我设法实际获得工厂的结果,但我也尝试单击视图按钮来获得工厂的详细信息。但是,driver.find_element_by_xpath(“/*[@id='grdSuppliers']/table/tbody/tr/td[10]/a”)。click()似乎不起作用?它表示元素不可交互?页面上有30个视图按钮元素,与
    /*[@id='grdSuppliers']/table/tbody/tr/td[10]/a
    匹配。您需要单击哪一个?假设我搜索“Namlee国际有限公司”,我检索一个工厂的结果。那家工厂在附加信息栏下有一个“查看”按钮,我没有点击它并在结果中删除文本,如果你能帮我的话,那就太好了!然后使用下面的xpath
    //tr[contains(,'Namlee International Co.Ltd.)]/td/a
    对不起,我不太清楚。我设法在工厂文本底部写下Namlee International Co.Ltd.,点击搜索并获得结果。现在,在结果框中有“附加信息”列。如何单击该列中的“查看”按钮?