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 硒元素:幻影上的元素永远不可见_Python_Selenium_Phantomjs - Fatal编程技术网

Python 硒元素:幻影上的元素永远不可见

Python 硒元素:幻影上的元素永远不可见,python,selenium,phantomjs,Python,Selenium,Phantomjs,我编写了这个简单的测试代码,它只在元素完全加载时单击该元素: driver = webdriver.Firefox(executable_path="geckodriver.exe") driver.get("https://watch.nba.com/") team = driver.find_element_by_xpath("//*[@title='Bucks']") over = team.find_element_by_xpath('..').find_element_by_xpa

我编写了这个简单的测试代码,它只在元素完全加载时单击该元素:

driver = webdriver.Firefox(executable_path="geckodriver.exe")
driver.get("https://watch.nba.com/")

team = driver.find_element_by_xpath("//*[@title='Bucks']")

over = team.find_element_by_xpath('..').find_element_by_xpath('..').find_element_by_xpath('..').find_element_by_class_name("watchgame")

WebDriverWait(driver, 10).until(EC.visibility_of(over))

over.click()
代码工作正常,因此我将其复制到真实代码中,并将第一行替换为:

driver = webdriver.PhantomJS()
问题是,现在上面的元素永远不可见,我总是得到:

selenium.common.Exception.TimeoutException

即使增加等待时间

我还读到,使用PhantomJS时,元素不需要是可见的,而是存在的,所以我写了以下内容:

    WebDriverWait(self.driver, 30).until(EC.presence_of_element_located((By.CLASS_NAME, "watchgame")))

    over.click()
但这次我得到了:

ElementNotVisibleException


你能帮我吗?

我和PhantomJS一起工作过一段时间。我确实观察了网址。你能告诉我你正在尝试的步骤吗,这样我就可以试着帮你了?其实很简单:找到所选球队的对手(在本例中为“Bucks”),然后打开比赛页面。当我在浏览器中运行
“/*[@title='Bucks']”“
时,它会一无所获。具体而详细。。。你想完成哪些手动步骤?你说的“在浏览器中运行”是什么意思?我用这段代码搜索每个标题为“Bucks”的元素,这是团队名称。因此,您可以将其替换为页面上的任何其他团队。(例如,今天你可以尝试使用‘鹰’)我曾经使用过幻影。我确实观察了网址。你能告诉我你正在尝试的步骤吗,这样我就可以试着帮你了?其实很简单:找到所选球队的对手(在本例中为“Bucks”),然后打开比赛页面。当我在浏览器中运行
“/*[@title='Bucks']”“
时,它会一无所获。具体而详细。。。你想完成哪些手动步骤?你说的“在浏览器中运行”是什么意思?我用这段代码搜索每个标题为“Bucks”的元素,这是团队名称。因此,您可以将其替换为页面上的任何其他团队。(例如,今天您可以尝试使用“鹰牌”)